Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не постятся данные в PostgreSQL. [D7, PostgreSQL]


denmin ©   (2008-03-20 10:41:00) 

Здравствуйте.
1) Создал на PG таблицу.
2) В Delphi7 установил Zeos как было рекомендовано.
3) Подключился и открыл таблицу, но...
Не могу записать в нее данные. Вот код
ZTable1.Open;
ZTable1.Append;
на Append вылетает ошибка: "ZTable1: Can not modify read-only dataset"
У ZConnection1 readonly выставил в False. У таблицы такого свойства вообще нет, у полей Readonly=False
пробовал через ADO. Там другое: Append срабатывает, строка появляется но при посте ругается: "Не удается втавить пустую строку. Необходим хотя бы один столбец значений. "
в этой таблице есть одна строка данный, 2 поля числовое и строковое, и еще автоинкремент и по нему primary key.
версия PG - PostgreSQL Database Server 8.2, а в моем Zeos в Protocol максимум 7.3. У Zeos не нашел новых библиотек, под PG 8.
попробовал через AdoQuery вот такой скрипт
INSERT INTO name(id, name) VALUES (20, '20');
данные пишет но ругается:"В наборе строк не определено ни одного столбца".
Ну помогите пожалуйста кто-нибудь.
такое ощущение как-будто сошел с ума и сам с собой говорю :-)
помогите пожалуйста.
Заранее благодарен.


Плохиш   (2008-03-20 17:53:00) [1]


> ну пока поработаем с ODBC. а вот с biginteger что посоветуете
> делать?

При использовании OLE DB Provider соответствующие TField получают тип ftLargeint и с помощью свойств Value/AsVariant возвращается значение.


Плохиш   (2008-03-20 15:10:00) [2]


> а вот с biginteger что посоветуете делать?

Зайти в настройки ODBC для PostgreSQL и  там на 2й странице установить как интерпретировать int8.


denmin   (2008-03-20 14:55:00) [3]

ну пока поработаем с ODBC. а вот с biginteger что посоветуете делать? а нам надо big. цифры будут огромные


Плохиш   (2008-03-20 14:42:00) [4]

Хотя, нет есть одна, одна студенческая поделка ADO OLE не знает типа параметров TDateTime, а вторая ODBC отбрасывает у них время :-(


Плохиш   (2008-03-20 14:37:00) [5]

И даже с dbExpress тоже проблем не было.


Плохиш   (2008-03-20 14:34:00) [6]


> denmin ©   (20.03.08 13:59) [6]
>
> > Плохиш ©
>
> неужели у вас получилось используя ADO или ZEOS записать
> донные в таблицу?

И с ADO OLE, и с ODBC, и с Zeos проблем не было. Сейчас использую ADO OLE.


denmin   (2008-03-20 14:28:00) [7]

осталось тока выяснить, почему формат PG biginteger Delphi не понимает


denmin   (2008-03-20 14:24:00) [8]

понял в чем дело. я использовал драйвер для подключения PG OLE, а надо было ODBC. щас усе летает. всем спасибо


denmin   (2008-03-20 13:59:00) [9]


> Плохиш ©

неужели у вас получилось используя ADO или ZEOS записать донные в таблицу? я 3 дня сижу и никак. согласен был передавать данные в кверь как параметры и писать, но даже так нормально не работает. вылетает ошибка, но что характерно данные пишет.


Плохиш   (2008-03-20 13:48:00) [10]


> Anatoly Podgoretsky ©   (20.03.08 13:40) [4]

Да, ладно, вполне нормально :-) Вот mysql это дааа...


Anatoly Podgoretsky   (2008-03-20 13:40:00) [11]

> denmin  (20.03.2008 13:37:03)  [3]

Посмотрел я на этот PostgreSQL, зря я ругался на Парадокс, это просто чудо перед ним.


denmin   (2008-03-20 13:37:00) [12]

> Плохиш ©   (20.03.08 12:09) [1]

конечно же пишу ExecSQL. и не только на INSERT но и на UPDATE. вопрос не в том что кверь пишет, а в том, что ADOTable1.Post не срабатывает. ругается.


Anatoly Podgoretsky   (2008-03-20 13:31:00) [13]

> denmin  (20.03.2008 10:41:00)  [0]

После INSERT INTO надо выдать команду на исполнение.


Плохиш   (2008-03-20 12:09:00) [14]


> denmin ©   (20.03.08 10:41)  

Postgre тут ни при делах, тут виновато полное отсутствие минимальных начальных знаний.

> попробовал через AdoQuery вот такой скрипт
> INSERT INTO name(id, name) VALUES (20, '20');
> данные пишет но ругается:"В наборе строк не определено ни
> одного столбца".

В справке написано, что метод Open применяется только для запросов, возвращаюших набор данных, типа SELECT. Для запросов, не возвращающих набор данных, следует использовать метод ExecSQL.


Наверх

Титульная страница Поиск, карта сайта Написать письмо