Problem with the read only clause for read only cursors
От | Tom Goodman |
---|---|
Тема | Problem with the read only clause for read only cursors |
Дата | |
Msg-id | 4A8B4050.1000709@MHProEZ.com обсуждение исходный текст |
Ответы |
Re: Problem with the read only clause for read only cursors
|
Список | pgsql-odbc |
Hi, I just loaded the 08.04 psqlodbc drivers on a new machine, but ran into a problem where this version is improperly marking ALL fields in recordsets as read-only. I presume that this is related to the recent change that restored the "read only clause for read only cursors". The final line in the procedure below fails with an ADO error message: (80040e21) "Multiple-step operation generated errors. Check each status value." When comparing psqlodbc 08.04 and 08.03 I see that in 08.03 all of the fields of the recordset have the adFldUpdatable flag set in each field's .Attributes. In 08.04 none of the fields have this flag set. Since this code runs without error when connecting to non-postgresql databases, I believe that psqlodbc is not properly setting the adFldUpdatable for the values of CursorLocation, CursorType, and LockType. Is this a bug? Can it be addressed? Private Sub Command1_Click() Dim CS As String CS = "DRIVER={PostgreSQL ANSI};" _ & "SERVER=theserver;" _ & "PORT=5432;" _ & "DATABASE=mydatabase;" _ & "MaxVarcharSize=16777216;" _ & "MaxLongVarcharSize=16777216;" _ & "BoolsAsChar=0;" Dim Connection As ADODB.Connection Set Connection = New Connection Connection.CursorLocation = adUseClient Connection.Mode = adModeShareDenyNone Connection.Open CS, C_UserName, C_Password 'Create a table to insert records into Connection.Execute "CREATE TEMP TABLE Test (ID INTEGER, Data CHARACTER VARYING(25))" Dim RS As ADODB.Recordset Set RS = New Recordset RS.CursorLocation = adUseClient RS.CursorType = adOpenDynamic 'but after the .Open the value will be adOpenStatic RS.LockType = adLockBatchOptimistic RS.Open "SELECT * FROM Test LIMIT 1", Connection 'This next line gives a multi-step operation error in psqlodbc 08.04, ' but succeeds in 08.03. 'It succeeds when using Jet and Access mdb databases, so I believe that ' it is an error to fail here. RS.AddNew Array("ID", "Data"), Array(1, "Hi mom!") End Sub Thanks P.S. Sorry for the VB6 code here, but that is what the app is built in. -- Tom Goodman, email TomGoodman@FBE-inc.com <mailto:TomGoodman@FBE-inc.com>, web http://fbe-inc.com/ FBE Associates, Inc., 513 N Madison Ave, Suite 101, Bay City, MI 48708-6460, USA Phone 989 894 2785, Fax 989 894 2805, Toll Free 866 894 2785 * God grant me the serenity to accept the code I cannot change * the courage to change the code I can change * and the wisdom to know the difference
В списке pgsql-odbc по дате отправления: