Chase Putans wrote:
Finding some odd and intermittent issues with DBD::ODBC when doing
multiple database joins. If I do a multiple database join as in the SQL
below, and do not have a where clause, or have a where clause and do not
bind values, I get an SQL-08S01: "Read from SQL server failed". If I
remove one of the joins, it works. If I do a WHERE 1 = ? and bind a 1,
it works. This looks to be a bug, but I am unsure if anyone else has
seen this. For now, I am adding a "WHERE 1 = ?" at the end and binding
a 1 to work around it. I am using unixODBC 2.2.11 and and DBD::ODBC
1.17 (also tried this with 1.22). I can post a DBI trace if needed as
well. Query looks like it runs fine running SQL profiler. Query as
follows.
SELECT
srvChkCon_Id, hst_Id,
HostServiceChecks.hst_Id as host,
ServiceCheckContacts.hstSrvChk_Id,
HostServiceChecks.srvChk_Id as scname,
srvChkCon_ContactId,
srvChkCon_DayNight,
otherdb..contact.first_name + ' ' + otherdb..contact.last_name
as name,
srvChkCon_CallBack
FROM ServiceCheckContacts
INNER JOIN HostServiceChecks ON
HostServiceChecks.hstSrvChk_Id = ServiceCheckContacts.hstSrvChk_Id
LEFT JOIN otherdb..contact ON
otherdb..contact.contact_id = ServiceCheckContacts.srvChkCon_ContactId"
Thanks.
Chase Putans
Which ODBC Driver are you using?
What is the full error text you are getting?
Can you send me a DBD::ODBC trace at level 15 and a unixODBC trace?
To get a unixODBC trace you need to add
[ODBC]
Trace = yes
TraceFile = /tmp/unixodbc.log
to the odbcinst.ini.
Sounds like an ODBC driver problem to me but when we get the traces
we'll know more. Just send them to me as attachments on this list of any
size get stripped.
Martin