Re: Shell Scripting SQLite
Re: Shell Scripting SQLite
- Subject: Re: Shell Scripting SQLite
- From: "Mark J. Reed" <email@hidden>
- Date: Fri, 30 May 2008 18:07:06 -0400
As I said, I don't know sqlite. It may not be possible to do what
you want - there's only one input stream, and sqlite may not have any
way of using it for both the database and the query to run against
that database.
On 5/30/08, Bruce Robertson <email@hidden> wrote:
> OK. But that's what I keep asking.
>
> Exactly how?
>
> Can you make this work?
>
> Property myDB:""
>
> On storeDB(db_path)
> Do shell script "cat " & quoted form of db_path
> Copy result to myDB
> -- or some other way to capture
> -- native form of sqlite db
> -- not sql dump form
> End storeDB
>
> On QueryDB(the_query)
> -- perform query against myDB
> -- somehow
> -- no disk access
> End storeDB
>
> StoreDB( "/test.db")
> QueryDB( "select * from people")
>
>
>> Applescript has its own memory. Sqlite has its own memory. They are
>> separate. Neither can access the internals of the other. Walled off.
>>
>> Also, the sqlite process doesn't even exist before or after your "do
>> shell script" command. It is relaunched from scratch every time.
>>
>> If you want to store a database in AS memory and have sqlite
>> manipulate it, you've got to pass it through an i/o channel. It
>> doesn't have to physically go to disk; it can go from AS's memory to
>> the opeating system's memory to sqlite's memory and back. But it's
>> still i/o.
>>
>>
>>
>>
>> On 5/30/08, Bruce Robertson <email@hidden> wrote:
>>>> On Fri, May 30, 2008 at 1:58 PM, Bruce Robertson <email@hidden> wrote:
>>>>> The following works to take a sql statement stored in a text field,
>>>>> convert
>>>>> the single quotes to double quotes, get it into the clipboard and use
>>>> pbpaste to send it to sqlite3.
>>>>
>>>>> Set Variable [ $$out; Value:"echo '" & Substitute(text::Text; "'";
>>>>> "\"")
>>>>> &"'|pbcopy|pbpaste|sqlite3 /newfm.db" ]
>>>>
>>>> ?!? Ok, pbcopy generates no output and pbpaste takes no input, so the
>>>> pipe does nothing. I think you mean this:
>>>>
>>>> echo blah | pbcopy
>>>> pbpaste | sqlite3
>>>>
>>>> But pbcopy and pbpaste are doing nothing for you there. You can do
>>>>
>>>> echo blah | sqlite3
>>>>
>>>> directly. That's nothing special - that's just feeding the contents of
>>>> an AS variable as standard input to sqlite3. If that's all you want,
>>>> then I don't know what you've been talking about.
>>>
>>> First of all, in my previous attempts, I must have messed up quoting and
>>> escaping and corrected it while playing with the pbpaste thing got that
>>> to
>>> work.
>>>
>>> But I still don't have what I want, which is to hold the database itself
>>> in
>>> a variable.
>>>
>>> The above technique works with a "dump" verion of a database. A set of
>>> SQL
>>> instructions.
>>>
>>> Send all the instructions to sqlite and make it regenerate the entire
>>> database and then query it when done. But why do I have to bother with
>>> all
>>> that regeneration?
>>>
>>> If I create a memory database, why can't I just store that in a variable?
>>>
>>> For that matter there doesn't seem to be a way to even capture a dump of
>>> an
>>> in memory database.
>>>
>>>
>>
>> --
>> Sent from Gmail for mobile | mobile.google.com
>>
>> Mark J. Reed <email@hidden>
>>
>
>
--
Sent from Gmail for mobile | mobile.google.com
Mark J. Reed <email@hidden>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users
This email sent to email@hidden