Unix Technical Forum

SQL Server 2005 "Left outer join" return nothing through ODBC call

This is a discussion on SQL Server 2005 "Left outer join" return nothing through ODBC call within the MS SQL ODBC forums, part of the Microsoft SQL Server category; --> SQL 2005 “LEFT OUTER JOIN” ISSUE In our C++ application, we call ODBC apis to execute following SQL statement. ...


Go Back   Unix Technical Forum > Database Server Software > Microsoft SQL Server > MS SQL ODBC

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 02-27-2008, 10:04 PM
=?Utf-8?B?U1FMIFNlcnZlciAyMDA1IE9EQkMgZHJpdmVyIHByb2JsZW0=?=
 
Posts: n/a
Default SQL Server 2005 "Left outer join" return nothing through ODBC call

SQL 2005 “LEFT OUTER JOIN” ISSUE


In our C++ application, we call ODBC apis to execute following SQL
statement. It did work for SQL Server 7.0 and SQL server 2000. When we
upgrade to SQL server 2005( and SQLNCLI.dll), it does not work any more
without any error report, it just returns empty result.

Note, not error report. The return code is success. Every thing is looked
perfect, except no content. It should return one row of the result. It works
perfect, if we just select same record from the first table without using
"left outer join" and the correct row was returned.

The sql statement is:

SELECT FM_WEB_DETAIL.TASK_GUID,
FM_WEB_DETAIL.SEQ_NO,
FM_WEB_DETAIL.DATA_DEF_ITEM_GUID,
FM_WEB_DETAIL.LABEL,
FM_WEB_DETAIL.WEB_PART,
FM_DATA_DEF_DETAIL.WEB_PART
FROM { OJ FM_WEB_DETAIL LEFT OUTER JOIN FM_DATA_DEF_DETAIL
ON FM_WEB_DETAIL.DATA_DEF_ITEM_GUID = FM_DATA_DEF_DETAIL.DATA_DEF_ITEM_GUID }
WHERE FM_WEB_DETAIL.PROCESS_GUID = ?
AND FM_WEB_DETAIL.TASK_GUID = ?
ORDER BY FM_WEB_DETAIL.SEQ_NO

We guess that the curly brick may not ansi standard, we changed the
statement to:

SELECT FM_WEB_DETAIL.TASK_GUID,
FM_WEB_DETAIL.SEQ_NO,
FM_WEB_DETAIL.DATA_DEF_ITEM_GUID,
FM_WEB_DETAIL.LABEL,
FM_WEB_DETAIL.WEB_PART,
FM_DATA_DEF_DETAIL.WEB_PART
FROM FM_WEB_DETAIL LEFT OUTER JOIN FM_DATA_DEF_DETAIL
ON FM_WEB_DETAIL.DATA_DEF_ITEM_GUID = FM_DATA_DEF_DETAIL.DATA_DEF_ITEM_GUID
WHERE FM_WEB_DETAIL.PROCESS_GUID = ?
AND FM_WEB_DETAIL.TASK_GUID = ?
ORDER BY FM_WEB_DETAIL.SEQ_NO

But, it still does not work. Later, we try to use “*= “ for “Left outer
join”, but it does not work either.

SELECT FM_WEB_DETAIL.TASK_GUID,
FM_WEB_DETAIL.SEQ_NO,
FM_WEB_DETAIL.DATA_DEF_ITEM_GUID,
FM_WEB_DETAIL.LABEL,
FM_WEB_DETAIL.WEB_PART,
FM_DATA_DEF_DETAIL.WEB_PART
FROM FM_WEB_DETAIL, FM_DATA_DEF_DETAIL
Where FM_WEB_DETAIL.DATA_DEF_ITEM_GUID *=
FM_DATA_DEF_DETAIL.DATA_DEF_ITEM_GUID
AND FM_WEB_DETAIL.PROCESS_GUID = ?
AND FM_WEB_DETAIL.TASK_GUID = ?
ORDER BY FM_WEB_DETAIL.SEQ_NO

However, all three style statements are working find on “SQL server 2005
query analyzer”.


Does any body know what the problem is? IT may be the ODBC driver is not
working perfect with SQL server 2005. We checked that our ODBC connection
indeed using the new driver "sqlncli.dll". Btw, it is not working with old
driver either.

Any feedback is appreciated. Thanks for your time.




Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 08:40 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com