Были ли у кого-то проблемы с общением с Постгрессом ч-з DAO?

кладовщик
Дата: 24.12.2011 14:37:39
В Экселе есть скрипт, кот-й работает с Постгрессом. Коннектится к нему, используя DAO 3.6. Создает какие-то неизвестные мне объекты, какие-то там даошные дела делает с ними, но в итоге результат нужный возвращает. Вот как-то так написано:

Set MyCon = wrkODBC.OpenConnection("MyConnect", dbDriverNoPrompt, , "ODBC;DATABASE=eware;UID=eware;PWD=eware;DSN=PostgreSQL30")
MyCon.Close
wrkODBC.Close
End Sub

Работает ч-з раз на 1-м и том же компьютере. Где может быть затык - что-то не так с драйвером или с самим МС Оффисом? Думаю, что не в Постгрессе затык. Наверное, кто-то уже с такой бедой сталкивался, кто с Постгрессом из MS Office общается? Может, какие-то конфликты бывают, когда в Экселе одновременно ДАО и АДО используются?
-----
Гори в аду, Progress OpenEdge!!!
vladK
Дата: 26.12.2011 13:50:02
http://ssy.mccinet.ru/ - кое что есть про этот сервер
bubucha
Дата: 27.12.2011 16:17:14
Set MyCon = wrkODBC.OpenConnection("MyConnect", dbDriverNoPrompt, , "ODBC;DATABASE=eware;UID=eware;PWD=eware;DSN=PostgreSQL30")
MyCon.Close
wrkODBC.Close
End Sub

что значит "через раз" ? в чем выражается?
SangYong
Дата: 28.12.2011 11:52:03
ну я уже полгода на msa97+PG9.1 - есть конечно углы
которые лучше знать чтобы в темноте не налететь...
например вот эта фраза прокатывает:

ret = Me.Child0.Form.SetSource("Select * from tbl_store IN 'mydb' [ODBC;DRIVER={PostgreSQL ANSI};SERVER=localhost;DATABASE=mydb;PORT=5432;UID=user;PWD=myPass]", "StoreCard")

а вот эта фраза уже нет:
ret = Me.Child0.Form.SetSource("Select * from getstore(10) IN 'Store' [ODBC;DRIVER={PostgreSQL ANSI};SERVER=localhost;DATABASE=mydb;PORT=5432;UID=user;PWD=myPass]", "StoreCard")
не пропускает кнтроль синтексиса msa - а хотелосьбы иметь возможность получать
на форму рекодсет из функции

но вот эта фишка всегда возвращае то чего надо:

Public Function QueryToServer(st As String) As Recordset
Dim q As QueryDef
dim ConnString as string

ConnString = " [ODBC;DRIVER={PostgreSQL ANSI};SERVER=localhost;DATABASE=mydb;PORT=5432;UID=user;PWD=myPass;" _
& "CA=d;A6=;A7=100;A8=4096;B0=255;B1=8190;BI=0;C2=dd_;;CX=1c502bb;A1=7.4]"

Set q = CurrentDb.CreateQueryDef("")
With q
.Connect = ConnString
.SQL = st
Set QueryToServer = .OpenRecordset()
End With
q.Close
End Function

вы бы проблемму осветили бы - интересно же - может я еще
не все засады прошел...
кладовщик
Дата: 28.12.2011 12:33:13
На данный момент проблемы вроде нет.
Было вот что: при выполнении макроса возникала ошибка Type mismatch (Error 13).
Если в Эксельке были одновременно в References подключены библиотеки ДАО и АДО, причем у АДО стоял приоритет выше ДАО, то возникала вышеупомянутая ошибка, дебаг на строке
Set MyCon = wrkODBC.OpenConnection("MyConnect", dbDriverNoPrompt, , "ODBC;DATABASE=eware;UID=eware;PWD=eware;DSN=PostgreSQL30")
показывал значение MyCon Nothing. Там, где в эксельке у ДАО стоял приоритет выше АДО, скрипт отрабатывал корректно. Вот такая была проблема.
-----
Не люблю Progress OpenEdge