Author Topic: Подключение базы данных PostgreSQL  (Read 31206 times)

0 Members and 1 Guest are viewing this topic.

Offline Victor Snezhko

  • Jr. Member
  • **
  • Posts: 72
  • Karma: +0/-0
Подключение базы данных PostgreSQL
« Reply #40 on: November 20, 2007, 22:38:13 »
Quote from: Dmitry Istomin
Сделал лог но честно говоря не могу понять где тут ошибка :(

Да, не очень понятно пока. Единственное - сыпятся ошибки "Requested schema not supported", скорее всего, когда билдер ищет PK-колонки. Но они не должны доходить до приложения. Как минимум в Delphi они обрабатываются внутри ADODB.

Покажите, что ли, таблицу (скрипт create table)...

Да, через libpq должно работать - в логах провайдера (он сам пользуется libpq для связи с PostgreSQL) видно, что запросы SELECT * FROM dict проходят и возвращают результаты.

Offline Dmitry Istomin

  • Newbie
  • *
  • Posts: 10
  • Karma: +0/-0
Подключение базы данных PostgreSQL
« Reply #41 on: November 22, 2007, 19:49:50 »
Quote from: Victor Snezhko
Покажите, что ли, таблицу (скрипт create table)...

CREATE TABLE "public"."dict" (
  "ID" BIGINT NOT NULL,
  "Word" TEXT NOT NULL,
  CONSTRAINT "dict_Word_key" UNIQUE("Word"),
  CONSTRAINT "dict_pkey" PRIMARY KEY("ID")
) WITH OIDS;

Это все

Offline Victor Snezhko

  • Jr. Member
  • **
  • Posts: 72
  • Karma: +0/-0
Подключение базы данных PostgreSQL
« Reply #42 on: November 25, 2007, 18:45:59 »
Quote from: Dmitry Istomin
CREATE TABLE "public"."dict" (
  "ID" BIGINT NOT NULL,
  "Word" TEXT NOT NULL,
  CONSTRAINT "dict_Word_key" UNIQUE("Word"),
  CONSTRAINT "dict_pkey" PRIMARY KEY("ID")
) WITH OIDS;

Это все

Вот такой vbs-код:
Code: [Select]
adCmdText = 1

Set Connection = WScript.CreateObject("ADODB.Connection")
Connection.Open "Provider=PostgreSQL.1;Data Source=localhost;Location=test;User ID=postgres;Password=postgres"

Set Query = WScript.CreateObject("ADODB.Command")

Query.ActiveConnection = Connection
Query.CommandText = "SELECT * FROM dict"
Query.CommandType = adCmdText

Set Rs = Query.Execute
do while not Rs.EOF
  WScript.Echo(Rs("Word"))
  Rs.MoveNext
loop

у меня не хочет ломаться - и на провайдере 1.0.0.20, и на моём - с http://people.indorsoft.ru/vvs/pgoledb.html, в котором я немного улучшал поддержку типа данных text.

Пробовал на данных:
INSERT INTO dict ("ID", "Word") VALUES (1, 'test1');
INSERT INTO dict ("ID", "Word") VALUES (2, 'test2');
INSERT INTO dict ("ID", "Word") VALUES (3, 'test3');


Offline Dmitry Istomin

  • Newbie
  • *
  • Posts: 10
  • Karma: +0/-0
Подключение базы данных PostgreSQL
« Reply #43 on: November 26, 2007, 01:00:33 »
Не хочет ломаться это как?

Offline Victor Snezhko

  • Jr. Member
  • **
  • Posts: 72
  • Karma: +0/-0
Подключение базы данных PostgreSQL
« Reply #44 on: November 26, 2007, 01:18:57 »
Quote from: Dmitry Istomin
Не хочет ломаться это как? :)

Работает через оба провайдера и ответы возвращает как надо. В том числе text-поля.
Видимо, какие-то проблемы в билдерном коде.
Если я правильно понял, исключение вылазит при присваивании Active = True - это аналогично открытию таблицы, даже ещё не чтению данных из неё. Я бы попробовал руками создать объект TADOQuery, натравил бы его на таблицу и посмотрел, что получится.

Offline Dmitry Istomin

  • Newbie
  • *
  • Posts: 10
  • Karma: +0/-0
Подключение базы данных PostgreSQL
« Reply #45 on: November 26, 2007, 18:47:16 »
Попробовал на Дельфи - тоже самое! А где пробовали если не секрет?

Offline Victor Snezhko

  • Jr. Member
  • **
  • Posts: 72
  • Karma: +0/-0
Подключение базы данных PostgreSQL
« Reply #46 on: November 28, 2007, 19:44:34 »
Quote from: Dmitry Istomin
Попробовал на Дельфи - тоже самое! А где пробовали если не секрет?

Э... в смысле где? приведённый скрипт запустил (из файла с расширением .vbs) и всё, он отработал. Выдал все данные. В т.ч. со старым провайдером 1.0.0.20.

Offline Dmitry Istomin

  • Newbie
  • *
  • Posts: 10
  • Karma: +0/-0
Подключение базы данных PostgreSQL
« Reply #47 on: December 02, 2007, 03:50:43 »
Quote from: Victor Snezhko
Э... в смысле где? приведённый скрипт запустил (из файла с расширением .vbs) и всё, он отработал. Выдал все данные. В т.ч. со старым провайдером 1.0.0.20.
Ну а сам скрипт где запустить? (просто я не совсем опытный в этом вопросе)
« Last Edit: December 02, 2007, 03:51:06 by Dmitry Istomin »

Offline Victor Snezhko

  • Jr. Member
  • **
  • Posts: 72
  • Karma: +0/-0
Подключение базы данных PostgreSQL
« Reply #48 on: December 02, 2007, 11:38:43 »
Quote from: Dmitry Istomin
Ну а сам скрипт где запустить? (просто я не совсем опытный в этом вопросе)

Как обычно в Windows - двойным щелчком...