Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / delphi / 13 сообщений из 13, страница 1 из 1
25.01.2005, 15:16
    #32882617
delphi
какой компонент лучше использовать для связи с постгресом?
...
Рейтинг: 0 / 0
25.01.2005, 17:33
    #32883069
AlWizard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delphi
zeos
...
Рейтинг: 0 / 0
26.01.2005, 09:04
    #32883684
delphi
зеос почемуто плохо работает с массивами из постгреса
почему то если делаеш select то 2 масива вытащить не реально
...
Рейтинг: 0 / 0
26.01.2005, 13:58
    #32884686
AlWizard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delphi
ну а другой альтернативы из шаровых компонентов более менее нормальных не видел, через ОДБС глючно и медленно, ну или нативный доступ к постгресу
...
Рейтинг: 0 / 0
26.01.2005, 14:59
    #32884893
Vlado
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delphi
Откомпиленная C++Builder'ом из исходников постгреса родная либа libpq
работает как часы в сделанных C++Builder'ом программах.

Прикручивать эту либу на delphi не пытался, так как давно слинял с него на Builder.
...
Рейтинг: 0 / 0
26.01.2005, 15:03
    #32884907
AlWizard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delphi
VladoОткомпиленная C++Builder'ом из исходников постгреса родная либа libpq
работает как часы в сделанных C++Builder'ом программах.

Прикручивать эту либу на delphi не пытался, так как давно слинял с него на Builder.

Если не сильно трудно - поделись опытом !!!
И где документацию по ней взять???
...
Рейтинг: 0 / 0
26.01.2005, 15:40
    #32885025
Vlado
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delphi
Слил исходники, например postgresql-8.0.0.tar.bz2,
развернул архив в линуксе, перенес каталог на виндовый раздел.
В исходниках есть файлики bcc32.mak специально для борландовского компилятора, но только для libpq и psql.
Из-под виндов откомпилил их как в них самих написано и вуаля.

Кстати, эти bcc32.mak из версии 8.0.0 сразу не заработали.
Пришлось их подправлять ручками глядя на таковые из версии 7.4.6,
нормально работающие.

Документация по libpq входит в стандартную документацию постгреса.
Например, ставишь PostgreSQL 8.0 for Windows и имеешь все доки
в виде HTML. Или сливаешь отдельно.
...
Рейтинг: 0 / 0
26.01.2005, 16:14
    #32885154
AlWizard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delphi
VladoСлил исходники, например postgresql-8.0.0.tar.bz2,
развернул архив в линуксе, перенес каталог на виндовый раздел.
В исходниках есть файлики bcc32.mak специально для борландовского компилятора, но только для libpq и psql.
Из-под виндов откомпилил их как в них самих написано и вуаля.

Кстати, эти bcc32.mak из версии 8.0.0 сразу не заработали.
Пришлось их подправлять ручками глядя на таковые из версии 7.4.6,
нормально работающие.

Документация по libpq входит в стандартную документацию постгреса.
Например, ставишь PostgreSQL 8.0 for Windows и имеешь все доки
в виде HTML. Или сливаешь отдельно.

Fatal: '"D:\postgresql-8.0.0\src\interfaces\libpq\Release\win32.obj"' does not exist - don't know how to make it
...
Рейтинг: 0 / 0
26.01.2005, 16:28
    #32885194
Vlado
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delphi
О чем и разговор :)

После
Код: plaintext
LINK32_OBJS= "$(INTDIR)\libpqdll.obj"
и перед
Код: plaintext
ALL: config "$(OUTDIR)" "$(OUTDIR)\blibpq.dll" "$(OUTDIR)\blibpq.lib"
вставляешь такую лабуду:
Код: plaintext
1.
2.
.path.obj = $(INTDIR)
.path.c = .;..\..\port;..\..\backend\libpq;..\..\backend\lib;..\..\backend\utils\mb
Кроме того, в том же месте где и bcc32.mak сам делаешь файлик pg_config_paths.h такого содержания:
Код: plaintext
#define SYSCONFDIR ""
Удачи!
...
Рейтинг: 0 / 0
26.01.2005, 16:59
    #32885319
AlWizard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delphi
Получил такое:

blibpq.dll
blibpqdll.lib
blibpq.lib

Если не ошибаюсь большего и не надо. Спасибо!!!!!!!!!!!!
...
Рейтинг: 0 / 0
26.01.2005, 17:09
    #32885369
Vlado
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delphi
На здоровье.
Мне хватает одной blibpq.lib :)
...
Рейтинг: 0 / 0
26.01.2005, 18:06
    #32885552
AlWizard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delphi
Нативе доступ - форева!!! Пашет как часики!
...
Рейтинг: 0 / 0
27.01.2005, 04:22
    #32885999
фффф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delphi
гарипов азатзеос почемуто плохо работает с массивами из постгреса
почему то если делаеш select то 2 масива вытащить не реально
Мне удалось заставить zeosdbo-6.1.5-stable работать с массивами и составными типами, но только путем правки исходников и только как со строками.
В dbc/ZDbcPostgreSqlUtils.pas добавил в PostgreSQLToSQLType()
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	 else   if  (TypeName = 'int2vector')  or  (TypeName = 'oidvector')
		 or  (TypeName = '_aclitem')  then 
		Result := stAsciiStream
 //++++++++++++ 
 //у всех массивов внутреннее имя типа начинается с подчеркивания 
	 else   if  Copy(TypeName,  1 ,  1 ) = '_'  then 
		Result := stString
 //------------ 
	 else 
		Result := stUnknown;
Для определения составных типов заменил запрос, возвращающий список типов из базы в ZDbcPostgreSql.TZPostgreSQLConnection.GetTypeNameByOid()
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 //++++++++++++ 
 //SQL := 'SELECT oid, typname, typbasetype FROM pg_type' 
 //	+ ' WHERE oid<10000 OR typbasetype<>0 ORDER BY oid'; 
 //включил все составные (composite) типы, потом будут приведены к строке	 
  SQL := 'SELECT oid, '
    + 'CASE WHEN typrelid = 0 THEN '''' ELSE ''_'' END || typname AS typname,'
    + 'typbasetype FROM pg_type'
    + ' WHERE oid<10000 OR typbasetype<>0 OR typrelid<>0 ORDER BY oid';
 //----------- 
Грубо, но работает.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / delphi / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]