Re: Q:Postgres 7.0 & Access'97? - Mailing list pgsql-sql
From | Yury Don |
---|---|
Subject | Re: Q:Postgres 7.0 & Access'97? |
Date | |
Msg-id | 1609984514.20000614131146@vpcit.ru Whole thread Raw |
In response to | Q:Postgres 7.0 & Access'97? ("Emils Klotins" <emils@dot.lv>) |
List | pgsql-sql |
Hello Emils, Once, Tuesday, June 13, 2000, 8:42:05 PM, you wrote: EK> I am using Postgres 7.0 on SuSE Linux 6.2 and Postdrv.exe EK> 6.50.0000 (as downloaded from /latest/ dir of PG FTP site EK> yesterday). EK> Now, I have experienced 4 issues immediately with Postgres via EK> ODBC from Access and I was wondering whether you could have EK> any idea what could possibly be done about them: EK> 1. Every time a query runs from Access, I get an error on the server EK> coneole: EK> pq_recvbuf: EOF the client closed the connection unexpectedly EK> The query seems to run fine though. I am getting the same messages, looks like cause somewhere in Access because I never got such messages when using other programs working with postgresql via odbc. And this messages appearing not after any queries. Since it doesn't disturb to work I didn't look into this. EK> 2. The tables on the SQL server were exported from Access tables, EK> using Access' File | Export -> ODBC connection. We used Pgupt for this: http://dspace.dial.pipex.com/boylesa/pgupt/pgupt.shtml and some hand works. Also look at the http://www.sevainc.com/Access/index.html EK> Now I can only access them from psql monitor if I enclose both the EK> table and field names in double quotes, like "Field1". The EK> tables/fields do have alphanumeric chars in them only (A-z,0-9). If I EK> try to access table "Test" like: EK> \d Test, I get: can't find relation 'test'. EK> (Note the caps both in table name & error msg) EK> \d "Test" works. When you create table with name in double quote (create table "Table" ...) then you must to use the same characters case (Table) in queries. It's written somewhere in docs or in FAQs. EK> 3. The connection seems to be QUITE slow (approximately 1-2 EK> seconds to show a form in Access), considering that the total of 19 EK> tables in the dbase contain a maximum of a couple of thousand of EK> rows (I think even less). The server is a HP Netserver PIII650 and EK> does not at the moment run anything else. The client computer is EK> not very up-to-date, yet the same Access db with local tables runs EK> practically instantly. I think 1-2 seconds is not a demonstrative time. Try to run a complex queries on a large tables in order to estimate speed. EK> 4. This is almost definitely an Access problem, but even if so: are EK> there any workarounds available? EK> A WHERE clause that compares a boolean value with a boolean EK> constant gives error: can't compare bool and int, use explicit cast. EK> Ie. in Access trying to use a SELECT .... WHERE a=True , yields EK> the above error, considering that a is a boolean field. EK> Same query works from psql monitor. You need to create operator "=" for int4 and bool. I used the following (you need to have a plpgsl language installed in postgresql): drop operator = (bool,int4); drop function MsAccessBool(bool,int4); create function MsAccessBool(bool,int4) returns bool as ' begin if $1 is NULL then return NULL; end if; if $1 is TRUE then if $2 <> 0 then return TRUE; end if; else if $2 = 0 then return TRUE; end if; end if; return FALSE; end; ' language 'plpgsql'; create operator = ( leftarg=bool, rightarg=int4, procedure=MsAccessBool, commutator='=', negator='<>', restrict=eqsel, join=eqjoinsel ); Also uncheck "bool as char" option in odbc driver properties. EK> Thanks a LOT in advance for any comments. EK> Emils, trying to make Access frontend work with Postgres EK> backend. Yury, successfuly maded Access frontend work with Postgres backend :-) -- Best regards,Yury ICQ 11831432mailto:yura@vpcit.ru