Re: Experiences conecting Delphi/Informix
Posted in 1996
It's a very sad state of affairs that Informix doesn't take it upon themselves to test these kinds of things. At least they should test their own drivers (I-Net and CLI) with the most used Windows products (Delphi, Visual Basic, PowerBuilder, MS Access, MS Query and some others) running against the latest engine versions on Unix and Windows NT. They realy ought to do cooperative testing with the respective suppliers of a few other ODBC drivers as well (like OpenLink, SQL-Retriever, Intersolve and perhaps one or two more). Had they done this the products would have become much more usefull, and they whould soon have become known in the marketplace for top notch support of Windows applications. The added sales should far outweigh the cost of one or two emploiees to do this. Let's here some comments. May be even someone at Informix gets interested and will say something about it. Alexander Ponomarenko <shura@bitcom.msk.ru> wrote: :Ing. Melvin Perez Cedano <cam@server1.codetel.net.do> wrote: :> :> Hello All: :> :> I would like to hear opinions about connecting Delphi with a :Informix engine :> (Local or Remote). :> :> :> Any help is welcome! :We have connected Delphi 1.0, 1.02 and 2.0 to Informix 6.0 on remote :SCO Unix server. Here are some hints that can help you. :{$I disclaimers.inc} :1. ODBC and IDAPI drivers. Some ODBC drivers have strange :behavior when working with Delphi. We have tested the following :drivers: :a) Q+E Informix ODBC driver 1.2 and Q+E Informix ODBC Driver 2.0 :b) Informix CLI 2.0 :c) IDAPI Informix 5,6 driver from Delphi 1.02 :Driver (a) has following distinctions: :1. When you try to assign a null string to some parameters you : get "General SQL error. [Q+E Software][ODBC Informix : driver]Character, decimal, and binary parameters cannot have : a precision of zero. Error in parameter 1." :2. TBatchMove cannot correctly copy a table from Informix because : it cannot get index descriptions. :3. Blob fields cannot have length of more than 32767 bytes. :4. You have to add the table owner to the table name like : "informix.systables" :5. Stored procedures cannot return integer values. : When a procedure returns 1 you get something like 808464433. : Actually, driver returns decimal(hex(chr(result))))). 1 -> : '0001' -> 0x30303031 -> 808464433. Of course, you can convert : an integer to a string in the procedure body as we do. :6. TTable component doesn't work with views. :Driver (b): #2, #3 of (a) (I haven't verified #1, #4 and #5) plus :7. Table names are "semi-" case sensitive. Why? If you : specify the table name in a wrong case (usually in upper case) : you get the table but you lose all indexes on it! :Driver (c): #2 of (a) plus :8. The names of arguments of stored procs will be "1", "2", etc. : instead of actual ones. :9. No Indexes on tables! Try to take a TDBLookupCombo and connect : it to two tables then select something. Post it to database : and re-query. Oops! Nothing! For no indexes are present the : combo box cannot set the current value. :c.d.i wizards say that the best ODBC driver is OpenLink - :I don't know it's possible that's right. :2. TCP/IP Stacks. :If you are connecting Delphi to Informix through TCP/IP, pay :attention to your TCP/IP stack. We tested following: :a) FTP PC/TCP 3.0 :b) Novell Lan Work Place 5.0 :c) FTP OnNet 2.1 :a) and b): : Open 10 TTables simultaneously and get the following result: : system hangs. (It's possible there is a way to tune up the :stack correctly) :c) We are satisfied with this product. :If someone have additional information about connecting :Delphi to Informix and about peculiarities of Informix ODBC :drivers please let me know. Any suggestions and comments :would be appreciated. : Shura. :--- :Shura Ponomarenko <shura@bitcom.msk.ru> :System Manager, BITCOM Ltd, Moscow. Nils.Myklebust@ccmail.telemax.no NM Data AS, P.O.Box 9090 Gronland, N-0133 Oslo, Norway My opinions are those of my company