не выполняется запрос

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

не выполняется запрос

Сообщение NewUser » 06.06.2007 09:29:00

выполняется код по нажатии на кнопку
Код: Выделить всё
SQLQuery1.DataBase := DM.IBConnection;
   SQLQuery1.Transaction := DM.SQLTransaction;
   
   SQLQuery1.SQL.Text := 'SELECT * FROM USERS, SOTRUDNIKI WHERE USER_PAS=' + EditUserPas.Text + ' AND USER_SOTR=SOTR_ID';
   
   SQLQuery1.Active := true;
   SQLQuery1.Open;

   ... далее продолжение


при запуске программы все проходит нормально, при нажатии на кнопку выполняется код и постоянно ошибка в SQLQuery1.Active := true;

вот ее текст:
IBConnection: Fetch:
-conversion error from string ''petrov ''.

запрос уже писал и так
SQLQuery1.SQL.Text := 'SELECT * FROM USERS, SOTRUDNIKI WHERE USER_PAS=1 AND USER_SOTR=SOTR_ID';

и так
SQLQuery1.SQL.Text := 'SELECT * FROM USERS, SOTRUDNIKI WHERE USER_PAS=' + #41 + #39 + EditUserPas.Text + #39 + #41 + ' AND USER_SOTR=SOTR_ID';
NewUser
новенький
 
Сообщения: 97
Зарегистрирован: 08.05.2007 13:28:40

Сообщение NewUser » 06.06.2007 10:04:00

если делаю так, то все нормально, но свопадений в
SQLQuery1.RecordCount всегда 0, хотя указываю верное значение для :PAS


Код: Выделить всё
SQLQuery1.Params.ParamByName('PAS').Value := EditUserPas.Text;
   SQLQuery1.SQL.Text := 'SELECT * FROM USERS, SOTRUDNIKI WHERE USER_PAS=:PAS AND USER_SOTR=SOTR_ID';
NewUser
новенький
 
Сообщения: 97
Зарегистрирован: 08.05.2007 13:28:40

Сообщение NewUser » 06.06.2007 10:59:23

в последнем варианте все ясно, сначала параметр присвоил ...
а вот почему первые не работают
NewUser
новенький
 
Сообщения: 97
Зарегистрирован: 08.05.2007 13:28:40

Сообщение Attid » 06.06.2007 12:20:38

SQLQuery1.Active := true;
SQLQuery1.Open;


так не делай просто
Код: Выделить всё
SQLQuery1.Open;


непараметизированые запросы это вообще грех, но если хочится тогда как нибуть так:

Код: Выделить всё
   SQLQuery1.SQL.Text := 'SELECT * FROM USERS, SOTRUDNIKI WHERE USER_PAS=''' + EditUserPas.Text + ''' AND USER_SOTR=SOTR_ID';
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Astralis » 06.06.2007 20:51:53

NewUser писал(а):
Код: Выделить всё
SQLQuery1.Params.ParamByName('PAS').Value := EditUserPas.Text;
   SQLQuery1.SQL.Text := 'SELECT * FROM USERS, SOTRUDNIKI WHERE USER_PAS=:PAS AND USER_SOTR=SOTR_ID';

По разным причинам лучше писать наоборот:
Код: Выделить всё
SQLQuery1.SQL.Text := 'SELECT * FROM USERS, SOTRUDNIKI WHERE USER_PAS=:PAS AND USER_SOTR=SOTR_ID';
SQLQuery1.Params.ParamByName('PAS').Value := EditUserPas.Text;
Аватара пользователя
Astralis
новенький
 
Сообщения: 45
Зарегистрирован: 06.06.2007 20:33:05
Откуда: Tvercity-Annet


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 111

Рейтинг@Mail.ru