Re: Odbc, postgresql and disconnected recordsets
От | Hiroshi Inoue |
---|---|
Тема | Re: Odbc, postgresql and disconnected recordsets |
Дата | |
Msg-id | 3C86F217.932EB9CC@tpf.co.jp обсуждение исходный текст |
Ответ на | Odbc, postgresql and disconnected recordsets ("Gaston Micheri" <ggmsistemas@hotmail.com>) |
Список | pgsql-odbc |
Please check the disallow premature option. regards, Hiroshi Inoue Gaston Micheri wrote: > > Hello, here I describe my problem... > Thank you! > > Bug using ADODB and Visual Basic for acceding PSQL > > We have a problem using ADODB (from Visual Basic) and POSTGRESQL when trying > to use an unconnected recordset whichエs property "locktype" is set to > "adLockBatchOptimistic" (Rs.locktype=adLockBatchOptimistic). When trying to > access to a database through ODBC, using ADODB, we have noticed an important > delay in comparison to other databases such as SQLServer. Investigating this > problem, we have detected where that delay is produced. The problem is > produced when we are trying to get an unconnected recordset with the > "adLockBatchOptimistic" block type. When it is trying to execute the query > (tracing it) we have seen that arrives three select results, but only one of > them corresponds to the sentence of the query but the other two are not. > We conclude that the last two results are important to recover the recordset > structure that will be disconnected later. > The problem is that one of this two extra queries runs a complete select > over the table that we are accessing with the written select.This table has > a lot of records, and it turns the answer really slow because it brings all > the talbe recordsets.But this records are not kept into the recordset. It > only brings the data requested by the written sentence.Now, we present the > Visual Basic code used to access the database and, after that, a log > obtained through POSTGRE ODBC. > > Visual Basic Code > > Dim objRs As New ADODB.Recordset > Dim objConn As New ADODB.Connection > Dim strSql As String > Dim strCadenaConexion As String > > strCadenaConexion = _ > "DSN=contabilidad_psql;DATABASE=contabilidad;" & _ > "SERVER=192.168.1.41;PORT=5432;UID=credito;PWD=;" > > objConn.Open strCadenaConexion > > strSql = "select * from agentes where id_sucursal = 7 and id_agente = 100" > > objRs.CursorLocation = adUseClient > objRs.CursorType = adOpenStatic > objRs.LockType = adLockBatchOptimistic > > Set objRs.ActiveConnection = objConn > objRs.Open strSql > > objRs.ActiveConnection = Nothing > objConn.Close > > MsgBox "Cant: " & objRs.RecordCount > > Log ODBC POSTGRE > > conn=409745072, query='select * from agentes where id_sucursal = 7 and > id_agente = 100' > [ fetched 1 rows ] > conn=409745072, query='SELECT * FROM agentes' > [ fetched 10773 rows ] > conn=409745072, query='select ta.attname, ia.attnum from pg_attribute ta, > pg_attribute ia, pg_class c, pg_index i where c.relname = 'agentes' AND > c.oid = i.indrelid AND i.indisprimary = 't' AND ia.attrelid = i.indexrelid > AND ta.attrelid = i.indrelid AND ta.attnum = i.indkey[ia.attnum-1] order by > ia.attnum' > [ fetched 2 rows ] > conn=409745072, PGAPI_Disconnect > > I hope you could help us to solve this problem. > Thank you! > Gaston
В списке pgsql-odbc по дате отправления: