[prev in list] [next in list] [prev in thread] [next in thread]
List: gambas-user
Subject: Re: [Gambas-user] How to address more than one table in resultset
From: Ron <ron () cyberjunky ! nl>
Date: 2009-01-29 13:42:02
Message-ID: 4981B22A.2040108 () cyberjunky ! nl
[Download RAW message or body]
Ron_1st schreef:
> On Thursday 29 January 2009, Ron wrote:
>
>> Bit stuck.
>>
>> In an attempt to optimize some db queries.
>>
>> I changed this (gets all events first then check if enabled, then gets
>> the trigger fields for that event etc):
>> ----
>> DIM rResult, rResultTrig, rResultAction AS Result
>>
>> rResult = Main.hDB.Exec("SELECT * FROM events")
>> IF rResult THEN
>> IF rResult.Count THEN
>> FOR EACH rResult
>> IF rResult!enabled THEN
>> IF rResult!trigger1 THEN
>> rResultTrig = Main.hDB.Exec("SELECT * FROM triggers WHERE id
>> = &1 ", rResult!trigger1)
>> IF rResultTrig THEN
>> IF rResultTrig!param1 =
>> ...
>> NEXT
>> ----
>>
>> to this (gets selected events and triggers table/fields):
>> ----
>> DIM rResult AS Result
>>
>> rResult = Main.hDB.Exec("SELECT * FROM events, triggers WHERE
>> events.trigger1 = triggers.id AND triggers.type = 3 AND events.enabled
>> AND triggers.param1 = &1", iId)
>>
>> IF rResult THEN
>> IF rResult.Count THEN
>>
>> FOR EACH rResult
>> ...
>> NEXT
>> ----
>> In the sql query tool from database manager it returns exactly the
>> correct records/fields etc
>>
>> But how can I get the fields from the triggers table from this resultset?
>>
>> I cannot do something like rResult!triggers.id
>> Is this possible?
>>
>> Thanks.
>>
>> Regards,
>> Ron_2nd.
>>
>>
>
>
>> rResult = Main.hDB.Exec("SELECT * FROM events, triggers WHERE
>>
> rResult = Main.hDB.Exec("SELECT *, triggers.fieldx as "triggerfieldx" FROM events, triggers WHERE
>
> You should get all field names from both tables side by side.
> (As far I remember)
>
> You can use the as "triggerfield" to declare the specific field from triggers.
>
> Lets asume both have a ID field, normal result will be then
> ID event xxx yyy ID trigger xxx yyy
>
> Using the ___triggers.ID as "triggerID"___ then you get
> ID event xxx yyy ID trigger xxx yyy triggerID
>
>
>
>
>
>
> Best regards,
>
> Ron_1st
>
>
Now that's the last kind of solution I was thinking of.
Where this you get this info from, have been searching gambasdoc over
and over again.
But it works nicely!
Note that single quotes are needed.
---
DIM value AS String
rResult = Main.hDB.Exec("SELECT *,triggers.param2 as 'value' FROM
events, triggers WHERE events.trigger1 = triggers.id AND triggers.type =
3 AND events.enabled AND triggers.param1 = &1", iId)
IF rResult THEN
IF rResult.Count THEN
FOR EACH rResult
SELECT rResult!value
...
---
Thanks alot!!
Regard,
Ron_2nd
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic