From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: gnade odbc and join tables
Date: Mon, 05 Jul 2010 22:35:00 +0200
Date: 2010-07-05T22:35:00+02:00 [thread overview]
Message-ID: <87zky5r7kb.fsf@ludovic-brenta.org> (raw)
In-Reply-To: 1265b06d-298d-4d1d-ae74-61262605262f@x27g2000yqb.googlegroups.com
tonyg writes on comp.lang.ada:
> I'm adapting the odbc demo in gnade to learn more about it. I want to
> be able to join tables and do a select according to the query string
> included in the code fragment.
> I 've modified the SQL prepare statement and here it is
>
> Len : aliased SQLINTEGER := 0; -- ignored for
> SQL_C_SLONG, if not negative
> Len_Macid : aliased SQLINTEGER;
> Macid : aliased String := 16 * '.';
> Planid : aliased SQLINTEGER;
> Len_Planid : aliased SQLINTEGER;
> query_string : String := "Select heater.macid, room.planid
> from heater" &
> "join room on heater.roomid = room.roomid order by
> room.planid";
> begin
> SQLAllocHandle (SQL_HANDLE_STMT, ConnectionHandle,
> StatementHandle);
> SQLPrepare (StatementHandle,
> "SELECT " & QuoteIdentifier ("HEATER.MACID") & ",
> " &
> QuoteIdentifier ("ROOM.PLANID") & ", " &
> " FROM " & QuoteIdentifier ("HEATER") & " JOIN "
> &
> QuoteIdentifier("ROOM") & " " &
> "WHERE " & QuoteIdentifier ("HEATER.ROOMID") & "
> = " &
> QuoteIdentifier ("ROOM.ROOMID") &
> "ORDER BY " & QuoteIdentifier
> ("ROOM.PLANID") );
>
> This is returning the following error when running
>
> raised GNU.DB.SQLCLI.SYNTAX_ERROR : [Proc=SQLBindCol][Server=x.x.x.x]
> [State=42000][MySQL][ODBC 3.51 Driver][mysqld-5.0.77]You have an error
> in your SQL syntax; check the manual that corresponds to your MySQL
> server version for th
>
> (ip address is x'ed out !)
>
> What am I doing wrong here - can anyone see?
IIRC, the proper syntax is INNER JOIN ... ON, not JOIN ... WHERE, i.e
SELECT heater.macid, room.planid
FROM heater INNER JOIN room ON heater.roomid = room.roomid
ORDER BY room.roomid
You miss the INNER keyword in both query_string and the argument to
SQLPrepare. You use ON (correctly) in query_string but WHERE
(incorrectly) in the argument to SQLPrepare.
HTH
--
Ludovic Brenta.
next prev parent reply other threads:[~2010-07-05 20:35 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-05 17:59 gnade odbc and join tables tonyg
2010-07-05 20:13 ` Georg Bauhaus
2010-07-05 20:35 ` Ludovic Brenta [this message]
2010-07-06 6:30 ` tonyg
2010-07-06 6:09 ` Stephen Leake
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox