Я пытаюсь подключиться к своей базе данных postgresql с помощью Lazarus pascal. Я получаю эту ошибку ближе к концу компиляции (F9).

mainform.pas (112,35) Ошибка: для вызова «Создать» указано неверное количество параметров.

Вот мой код:

  dbConn:= TSQLConnection.Create(nil);    
  dbConn.HostName := '<IP goes here>';    
  dbConn.DatabaseName:= 'dbMydb';    
  dbconn.UserName:='me';    
  dbConn.Password:='pas';    
  dbConn.Open;

  //Bind the Transaction AND Query components to the DB connection

  dbQuery_Menu := TSQLQuery.Create; //This is the line with the error    
  dbQuery_Menu.Database := dbConn;    
  dbQuery_Menu.Transaction := dbTrans ;

Я действительно устал, пытаясь понять это ... Любая помощь, пожалуйста ...

Приведенный выше код был адаптирован отсюда.

0
itsols 30 Окт 2012 в 14:12
Для тех, кто столкнулся с той же проблемой или хотел бы исправить это, вот код: pastebin.com/RSBkusDM
 – 
itsols
31 Окт 2012 в 07:52

1 ответ

Лучший ответ

Кажется, что документация устарела, TSQLQuery происходит от класса TCustomSQLQuery где конструктор определяется как

 constructor Create(AOwner : TComponent); override; 

Итак, вам нужно изменить свой код следующим образом

dbQuery_Menu :=TSQLQuery.Create(nil); 
2
RRUZ 31 Окт 2012 в 01:45
Спасибо за уделенное время. К сожалению, я получаю ту же ошибку . Думая, что это может быть проблема с разрешениями, я даже попробовал это: dbQuery_Menu.SQL.Text:= 'Select 5+6 as Ans';, но результат тот же. Даже пытался поместить nil во все объекты (соединение, транзакция и запрос), но ничего не изменилось. Я начинаю думать, что это ошибка Lazarus.
 – 
itsols
31 Окт 2012 в 07:40
Вы скажете, какая у вас такая же ошибка Wrong number of parameters specified for call to "Create" после того, как вы изменили код предложенным мной кодом?
 – 
RRUZ
31 Окт 2012 в 08:00
О нет, мне очень жаль слияние ... Последние несколько дней были беспокойными, и я потерял больше, чем когда-либо прежде ... Я могу запустить это, как вы сказали, либо поставив nil или имя компонента в форме. Но теперь вылетает при открытии запроса.
 – 
itsols
31 Окт 2012 в 08:11
Извините за путаницу ... На этот вопрос я принимаю ваш ответ. Но я просто не могу получить код, чтобы открыть запрос. Кстати, я делаю все это через код, а не с использованием компонентов на верхней вкладке.
 – 
itsols
31 Окт 2012 в 08:12
Вот другой вопрос - это где программа вылетает при открытии запроса. itsols
31 Окт 2012 в 08:16