C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
какая-то фигня с insert в Postgresql, odbc, ole, TADOQuery
Tertium
Отправлено: 26.02.2007, 15:58


Машинист паровоза

Группа: Почетный участник
Сообщений: 192



Использую Postgres 8.2, odbc драйвер 8.02.02, подключаюсь через PostgreSQL OLE DB Provider.
m_query — объект TADOQuery
CODE

m_query->SQL->Text="insert into my_table (field1, field2, field3) values (1,2,3)";
m_query->Prepared=true;
m_query->Parameters->Clear();
m_query->ExecSQL();

В ответ получаю: "В наборе строк не определено ни одного столбца" от OLE.
Бред какой-то. Если так же исполняю select, create table, create database, create function, create rule — все работает.
Выполняю "update my_table set field1 = 1 where field2> 1" — та же ошибка.

Разумеется, если написать команды базе напрямую, они работают.

Никто не сталкивался? в чем засада? может подготовленные запросы на изменение постгра не исполняет?

Отредактировано Tertium — 26.02.2007, 18:15
olegenty
Отправлено: 26.02.2007, 16:47


Ветеран

Группа: Модератор
Сообщений: 2412



чё-то я не догнал, а какие именно values ты пишешь? в скобках у тебя ни одного не перечислено. я солидарен с тем, что у тебя ошибка, хотя сам вывел бы другое сообщение smile.gif
Tertium
Отправлено: 26.02.2007, 17:06


Машинист паровоза

Группа: Почетный участник
Сообщений: 192



да псевдокод это smile.gif
любой инсерт и любой апдейт вызывают эту ошибку
Tertium
Отправлено: 26.02.2007, 19:07


Машинист паровоза

Группа: Почетный участник
Сообщений: 192



я х**ю в этом заапарке.
TADOConnection исполняет инсерт и апдейт
TADOQuery — нет!!!! wizard.gif
... а я уже почти с зевсом разобрался
olegenty
Отправлено: 27.02.2007, 09:36


Ветеран

Группа: Модератор
Сообщений: 2412



EhLib рулит. TADOConnection — TADODataDriverEh — TMemTableEh = самое гибкое из возможных решение.
Tertium
Отправлено: 27.02.2007, 11:20


Машинист паровоза

Группа: Почетный участник
Сообщений: 192



я както привык все запросы руками писать. а в чем прикол юзать xxxTable ?

да и потом, платная либа, хоть и для своих шаровара. тем паче ставится она раком както. не находит DclEhLibDataDriversB60.bpl. И почему с библиотеками под билдер всегда такая трахотня?.. с зевсом -так вобще вчера полдня потерял.

Я занимаюсь портом всех приложений написаных под mssql, поэтому стараюсь делать минимальные изменения.
например в классе бд дописал определялку типа запроса и вызов соотв методов у TADOConnection и TADOQuery

Отредактировано Tertium — 27.02.2007, 12:22
olegenty
Отправлено: 02.03.2007, 08:01


Ветеран

Группа: Модератор
Сообщений: 2412



нет никакой трахотни (почти). нормально работает.

Вернуться в Работа с базами данных в C++Builder