Работа с PostgreSQL. У кого есть элементтарный пример?

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

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

P.K
незнакомец
Сообщения: 5
Зарегистрирован: 10.06.2010 17:21:28

Сообщение P.K »

хм...а DELETE?Не подскажите пжлст?
Аватара пользователя
dunin
энтузиаст
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
Контактная информация:

Сообщение dunin »

P.K писал(а):хм...а DELETE?Не подскажите пжлст?

Ну вы что? :D
Включите мозг. Тот же самый принцип. Создаем Query - заполняем SQL - выполняем - освобождаем. Все. Из принципа код не выложу. :D
P.K
незнакомец
Сообщения: 5
Зарегистрирован: 10.06.2010 17:21:28

Сообщение P.K »

a:=DBEdit1.text;
SQLQuery2.Active:=false;
SQLQuery2.DeleteSQL.Clear;
SQLQuery2.DeleteSQL.add('DELETE KodP,NameP,Adres,Tel,Bank,INN,RS FROM Pokup WHERE KodP='+chr(34)+a+chr(34)+';');
SQLQuery2.ExecSQL;

похоже на правду?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

P.K насмешил :lol:
Учим сначала SQL :!:
P.K
незнакомец
Сообщения: 5
Зарегистрирован: 10.06.2010 17:21:28

Сообщение P.K »

А что там не так?Если ты про перечисление полей,то это особенность версии лазаруса.Он звездочку не воспринимает и чтобы сделать запрос на удаление,выборку всех полей надо прописывать все поля.Или ты в другом ошибку там нашел?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Зачем поля? Зачем звёздочка?

Код: Выделить всё

DELETE FROM <таблица> WHERE <условие>
P.K
незнакомец
Сообщения: 5
Зарегистрирован: 10.06.2010 17:21:28

Сообщение P.K »

Ну там в общем-то вся проблема не в скул команде.Там проблема вот в этой последовательности строк.Вроде бы делаю так как советуют,так как написано,но всеравно "SQL statement not set".Но спасибо в любом случае.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

а так?

Код: Выделить всё

SQLQuery2.Active:=false;
SQLQuery2.SQL.Clear;
SQLQuery2.SQL.add('DELETE FROM Pokup WHERE KodP='+chr(34)+a+chr(34)+';');
SQLQuery2.ExecSQL;
GrayEddy
постоялец
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение GrayEddy »

IMHO, точка с запятой в запросе в конце не нужна
KodP - скорее, число
Тогда грамотнее оформить текст запроса Format'ом - эстетичнее

Код: Выделить всё

SQLQuery2.SQL.add(Format('DELETE FROM Pokup WHERE KodP=%d', [a]));

или

Код: Выделить всё

SQLQuery2.SQL.add(Format('DELETE FROM Pokup WHERE KodP="%s"', [a]));
- если код как строка
Аватара пользователя
grigoreo
постоялец
Сообщения: 195
Зарегистрирован: 10.03.2009 14:43:43
Откуда: С нашей Раши

Сообщение grigoreo »

такое ощущение что хранимые процедуры и функции создавались зря до сих пор все работают прямым доступом))
delphiec
незнакомец
Сообщения: 5
Зарегистрирован: 23.10.2011 11:09:03

Сообщение delphiec »

Народ нужна помощь реально перечитал эти 2 страницы данного поста раз на 500 и бъюсь уже почти неделю ну нехочет работать Insert.
В чем может быть проблема, перепробовал все варианты отсюда и не только... Запрос выполняется без ошибок, а в таблице пусто.

Самое интересное что если пробовать отладчиком пройтись по коду, то тот умирает на строке PQConnection.Open; а если просто скомпилить то всё работает, всмысле только SELECT
Ответить