Lazarus не правильно работает с SQL?

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

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

Lazarus не правильно работает с SQL?

Сообщение sadavod » 27.12.2009 14:42:27

пишу в конструкторе запросов select "id_users" from "IP" where ip='192.168.1.33' limit 1; РАБОТАЕТ
пишу в конструкторе запросов select "id_users" from "IP" where ip='192.168.1.33' limit '1'; РАБОТАЕТ

пишу в LAZARUS SQLQuery1.SQL.Add('select "id_users" from "IP" where ip='''192.168.1.33''' limit 1;'); НЕ РАБОТАЕТ
пишу в LAZARUS SQLQuery1.SQL.Add('select "id_users" from "IP" where ip='''192.168.1.33''' limit '''1''';'); НЕ РАБОТАЕТ

пишу в LAZARUS SQLQuery1.SQL.Add('select "id_users" from "IP" where ip='''192.168.1.33''''); РАБОТАЕТ
sadavod
новенький
 
Сообщения: 18
Зарегистрирован: 27.12.2009 14:30:29

Re: Lazarus не правильно работает с SQL?

Сообщение Brainenjii » 27.12.2009 15:18:44

SQLQuery1.SQL.Add('select "id_users" from "IP" where ip='#39'192.168.1.33'#39' limit 1'); - тоже не работает?
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Lazarus не правильно работает с SQL?

Сообщение sadavod » 27.12.2009 15:46:40

Brainenjii писал(а):SQLQuery1.SQL.Add('select "id_users" from "IP" where ip='#39'192.168.1.33'#39' limit 1'); - тоже не работает?

Увы, Ошибка при выполнении SQL запроса
sadavod
новенький
 
Сообщения: 18
Зарегистрирован: 27.12.2009 14:30:29

Re: Lazarus не правильно работает с SQL?

Сообщение Mr.Smart » 27.12.2009 16:37:07

sadavod
Текст сообщения об ошибке в студию :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Lazarus не правильно работает с SQL?

Сообщение Logo » 27.12.2009 19:17:02

С какой СУБД работаете?
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Lazarus не правильно работает с SQL?

Сообщение sadavod » 27.12.2009 21:19:33

postgresql Способ может кому будет полезным как это дело обойти
Код: Выделить всё
select "id_users" from "IP" where ip='192.168.1.33' order by "id_users" LIMIT 1 OFFSET 0;')


Разобрался, с селектом но вот с Инсертом бьюсь все не вкакую,
скажите люди, почему один и тот же запрос работает в pgAdmin и терминале, но не вкакую не хочет работать в Lazarus,
он что совсем еще сырой (Lazarus) или может стоит переходить на сторонние компоненты, или еще чего?
sadavod
новенький
 
Сообщения: 18
Зарегистрирован: 27.12.2009 14:30:29

Re: Lazarus не правильно работает с SQL?

Сообщение Mr.Smart » 27.12.2009 21:27:18

sadavod
Здесь дело обстоит в том (как я предполагаю), что Query занимается проверкой введённого запроса и если он не соответствует спецификации SQL посылает его нафиг.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Lazarus не правильно работает с SQL?

Сообщение sadavod » 27.12.2009 22:07:30

Mr.Smart писал(а):sadavod
Здесь дело обстоит в том (как я предполагаю), что Query занимается проверкой введённого запроса и если он не соответствует спецификации SQL посылает его нафиг.

Люди добрые да дайте же посмотреть на эту спецификацию, а то новый год чуствую проведу за монитором.
sadavod
новенький
 
Сообщения: 18
Зарегистрирован: 27.12.2009 14:30:29

Re: Lazarus не правильно работает с SQL?

Сообщение Mr.Smart » 27.12.2009 22:14:15

Ищите и читаете стандарт SQL-92 :wink:

Добавлено спустя 2 минуты 3 секунды:
А вообще попробуйте другие компоненты для доступа или же свойство ParseSQL установите в false.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Lazarus не правильно работает с SQL?

Сообщение Logo » 28.12.2009 04:20:16

sadavod писал(а):скажите люди, почему один и тот же запрос работает в pgAdmin и терминале, но не вкакую не хочет работать в Lazarus,
он что совсем еще сырой (Lazarus) или может стоит переходить на сторонние компоненты, или еще чего?

Все работает весьма хорошо, просто есть некоторые особенности реализации в паскале.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Lazarus не правильно работает с SQL?

Сообщение gotozero » 28.12.2009 13:50:40

sadavod писал(а):пишу в конструкторе запросов select "id_users" from "IP" where ip='192.168.1.33' limit 1; РАБОТАЕТ
пишу в конструкторе запросов select "id_users" from "IP" where ip='192.168.1.33' limit '1'; РАБОТАЕТ

пишу в LAZARUS SQLQuery1.SQL.Add('select "id_users" from "IP" where ip='''192.168.1.33''' limit 1;'); НЕ РАБОТАЕТ
пишу в LAZARUS SQLQuery1.SQL.Add('select "id_users" from "IP" where ip='''192.168.1.33''' limit '''1''';'); НЕ РАБОТАЕТ

пишу в 'select "id_users" from "IP" where ip='''192.168.1.33'''');[/color] [/b]РАБОТАЕТ


Попробуй:

SQLQuery1.SQL.Add('select "id_users" from "IP" where ip=''192.168.1.33'' limit 1;');
Аватара пользователя
gotozero
новенький
 
Сообщения: 15
Зарегистрирован: 14.10.2008 12:34:36

Re: Lazarus не правильно работает с SQL?

Сообщение Climber » 28.12.2009 21:19:52

И еще через параметры можно. Я бы даже сказал нужно.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Lazarus не правильно работает с SQL?

Сообщение sadavod » 29.12.2009 23:29:46

SQLQuery1.SQL.Add('select "id_users" from "IP" where ip=''192.168.1.33'' limit 1;'); ГЕННИАЛЬНО :)
sadavod
новенький
 
Сообщения: 18
Зарегистрирован: 27.12.2009 14:30:29

Re: Lazarus не правильно работает с SQL?

Сообщение gotozero » 30.12.2009 17:18:38

Climber писал(а):И еще через параметры можно. Я бы даже сказал нужно.

+1
У вас динамический SQL.
В будущем, старайтесь использовать переменные подстановки. Нужно это для того, чтобы база данных не парсила заново ваш SQL, а брала готовый из памяти. Очень серьезно может отразиться на производительности БД. По крайней мере это актуально для Oracle.
Аватара пользователя
gotozero
новенький
 
Сообщения: 15
Зарегистрирован: 14.10.2008 12:34:36


Вернуться в Lazarus

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

Сейчас этот форум просматривают: Google [Bot] и гости: 52

Рейтинг@Mail.ru
cron