> On Feb 15, 2017, at 6:31 PM, setysvar [email protected] [firebird-support] 
> <[email protected]> wrote:
> 
> 
> 
> Den 15.02.2017 17:07, skrev 'Walter R. Ojeda Valiente' 
> [email protected] [firebird-support]:
>> Hello everybody
>> 
>> If I connect to a database "Database1" using ISQL, I can write something 
>> like:
>> 
>> OUTPUT MyFile.DAT;
>> SELECT * FROM MyTable;
>> OUTPUT;
>> 
>> And all the rows of "MyTable" will go to the text file "MyFile.DAT". That's 
>> ok and works fine.
>> But now, I want to connect to "Database2", which also have a table called 
>> "MyTable" and with the same structure.
>> After that, I want to insert into "MyTable" (of "Database2") the rows 
>> contained in "MyFile.DAT"
>> How can I do such thing without a lot of effort writing an INSERT command in 
>> each line of "MyFile.DAT"?
>> 
>> Greetings.
>> Walter.
> 
> Hi Walter. I'm not directly answering your question (mainly due to not using 
> isql myself, so I don't know the answer), but I can think of two alternative 
> ways. 
> 
> (1) (the more standard answer) Make sure your output file is in a fixed 
> length format, then create an external table for this file, transfer the data 
> using INSERT INTO "MyTable" SELECT * FROM <FileDefinedWithExternalTable> and 
> then finally drop the external table.
> 
> (2) Use qli rather than isql to transfer data directly using something 
> similar to this recipe: 
> https://www.ibphoenix.com/resources/documents/how_to/doc_42
> qli is an ancient part of InterBase, probably used before SQL was invented, 
> you can find it in the same directory as isql.
> 
> I've only used qli once many years ago (probably on Fb 0.9.4 or 1.5), but it 
> worked nicely when I needed it. Though I don't think     qli has been updated 
> for the last few Firebird versions, so maybe it doesn't work anymore. And you 
> may have a hard time finding information about it beyond the document 
> referred to above. Though I suppose:
> 
> ready "Database1" as src;
> ready "Database2" as trg;
> trg."MyTable" = src."MyTable";
> 
> doesn't need much explanation and should be simple for you to try on a test 
> database. I expect it to replace the target rather than add to it (though I 
> don't know), but the one time I used qli, I think I was transferring to an 
> empty table.    


For what it's worth, qli won't magically delete existing records.  But it 
probably won't work either

Cheers,

Ann

> 
> 
> 

Reply via email to