Thread: odbc/ado problems
Hi all! I'm new here, so hello to everybody! I'm in a deep truble using postgesSQL 7.2.0 on a low-end pc with SUSE 8. I'm using some databases from that pc through odbc (7.3.200). Until now i had no problems with this solution, everithing worked fine. But today i wrote a small app, that converts/copies some data from a database to an other database. During this work i wrote a simple query as follows: select pers_driving_license from person where pers_id=23456 This should return a single varchar(20) field. Running this query over ADO/ODBC from a Delphi app tooks 50-100 secs. If i run this from pgAdmin II. it takes some msecs. The output of explain is: Index Scan using person_id_index on person (cost=0.00..3.14 rows=1 width=4) Any idea? Thanks in advance: steve
> I'm new here, so hello to everybody! > > I'm in a deep truble using postgesSQL 7.2.0 on a low-end pc with SUSE 8. > I'm > using some databases from that pc through odbc (7.3.200). Until now i had > no > problems with this solution, everithing worked fine. But today i wrote a > small app, that converts/copies some data from a database to an other > database. > > During this work i wrote a simple query as follows: > select pers_driving_license from person where pers_id=23456 > > This should return a single varchar(20) field. Running this query over > ADO/ODBC from a Delphi app tooks 50-100 secs. If i run this from pgAdmin > II. > it takes some msecs. Question: what is your Delphi database driver? If you are using the BDE, that might be your problem. Try installing andusing the ZeosLib toolkit. http://www.zeoslib.org Merlin
> thanks for the quick answer! My db driver is the native MS ADO, and from > Delphi i use the AODExpress components which are wrapper classes to reach > the ActiveX components from delhpi. The strange behaviour of that query > is, > that all other queries executed in this environment are running fast, > except > this one. First there was any index on that table (appr. 40.000 records), > and i thought that maybe this is my problem. Then i made this index, but > this hasn't solved my problem. > Now i think that maybe the odbc driver makes something with my query? Can > this happen? Possible. I would turn on statement logging on the server and make sure the query is the way you wrote it in the app. The driver might be doing something like pulling all the data and attempting a client side filter. Otherwise you may be looking at a casting problem of some sort. To turn on logging, set statement log to 'all' in your postgresql.conf file. You may need to start the server manually so you can determine where the log goes (logging to terminal is often the easiest to work with). If you are writing Delphi applications, you really should check out Zeos. It utilizes native drivers to connect to the database...it's really, really fast and supports all the Delphi controls (and free!). Merlin