internal SQL queries
Jim Ault
JimAultWins at yahoo.com
Tue Aug 8 20:07:51 EDT 2006
Yes, filter is very fast, but not always the fastest, yet rarely far off.
You could do the variable column filter string, perhaps as
put cr & coolDataTable & tab into foundLines
put "*"&tab into C
get item 1 to colNeeded-1 of (C&C&C&C&C&C&C&C&C&C&C&C&C)
filter foundLines with (it & IDnum & tab&"*")
Jim Ault
Las Vegas
On 8/8/06 1:34 PM, "Josh Mellicker" <josh at dvcreators.net> wrote:
> I thought of filter, but the problem is the ID column always has to
> be the first one, right?
>
> That's fine for data fields where there is only one ID column, but
> there might be several...
>
>
> I've been thinking one could ascertain the column number of the
> desired ID column, then make a certain number of tabs, like:
>
> put itemOffset(locatorColumnHeader,p) into locatorColNo
>
>
>
> REPEAT locatorColNo -1 times
> put tab & "*" after theNumberOfTabsNeededToGetToDesiredColumn
> END REPEAT
>
> Then filter with
>
> theNumberOfTabsNeededToGetToDesiredColumn & locatorValue & tab & "*"
>
>
> something like that...
>
> -----------------
>
> So FILTER is definitely faster than a REPEAT loop going through all
> lines of a variable, right?
>
> (because FILTER has to look at every line anyway, right?)
>
>
>
> On Aug 7, 2006, at 12:51 PM, Jim Ault wrote:
>
>> I would try this approach, although not the only one:
>> ---------------
>> get cr & whichDataFld & tab
>> filter it with ( cr & locatorColNo &tab &"*")
>> -- now you have a list of one line
>> -- this filter pattern will insure only column 1 and
>> -- whole matches between the cr and tab..
>> -- no need to redo your IDs
>> --the last tab is appended to 'it' since you could have a last line
>> table
>> entry with only an ID and you would want to located it. It is the
>> last line
>> and has empty values, perhaps by mistake.
>>
>> if the number of lines in it > 1 then
>> answer "Multiple IDs found "& (the number of lines in it)
>> return empty
>> else if the number of lines in it = 0 then
>> answer "ID " & locatorColNo & " could not be found"
>> return empty
>> else
>> return item dataColNo of it
>> end if
>> ------------------------------
>> Jim Ault
>> Las Vegas
>>
>> On 8/7/06 11:47 AM, "Josh Mellicker" <josh at dvcreators.net> wrote:
>>
>>> Here is a function I wrote to retrieve data from a table field.
>>>
>>> All it needs is:
>>>
>>> whichDataFld - the long name of the data field
>>> locatorColumnHeader - assumes the top row is a header row with the
>>> column name, this is which column to use to locate the correct row
>>> locatorValue - this is the value in the column with the header
>>> "locatorColumnHeader" that tells you you have the right row
>>> headerOfDataToGet - this is the column containing the data you want
>>>
>>>
>>> FUNCTION getDataFromDataFld
>>> whichDataFld,locatorColumnHeader,locatorValue,headerOfDataToGet
>>> put the text of whichDataFld into p
>>> set itemdel to tab
>>> put itemOffset(locatorColumnHeader,p) into locatorColNo
>>> put itemOffset(headerOfDataToGet,p) into dataColNo
>>> REPEAT with x = 2 to the number of lines of p
>>> IF item locatorColNo of line x of p = locatorValue THEN exit
>>> REPEAT
>>> END REPEAT
>>> return item dataColNo of line x of p
>>> END getDataFromDataFld
>>>
>>>
>>>
>>> So if your table field is:
>>>
>>> ID name color food
>>> 5 Ken blue cheese
>>> 7 Jerry green pizza
>>> 21 Sarah red sushi
>>>
>>>
>>> you could say
>>>
>>> put getDataFromDataFld(whichDataFld,ID,7,"food") into tData
>>>
>>> RESULT: "pizza"
>>>
>>>
>>> What I don't like about this handler is that it must scan every line
>>> to find the right row... there must be a faster way to write this,
>>> no?
>>>
>>>
>>>
>>>
>>> On Jul 21, 2006, at 1:01 PM, Viktoras Didziulis wrote:
>>>
>>>> Dear group,
>>>>
>>>> is it possible to query [tab] delimited data stored in fields or
>>>> containers
>>>> within a stack using SQL? e.g. without any external database
>>>> engine or
>>>> database files or connections...
>>>>
>>>> All the best!
>>>> Viktoras
>>>> _______________________________________________
>>>> use-revolution mailing list
>>>> use-revolution at lists.runrev.com
>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>>
>>> _______________________________________________
>>> use-revolution mailing list
>>> use-revolution at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your
>>> subscription
>>> preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>>
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
More information about the use-livecode
mailing list