Firebird połączenie z inną bazą

0

Witam

Mam taki problem, potrzebuję przegrać dane z jednej bazy do drugiej (firebird). Trudnością jest uzyskanie połączenia do drugiej bazy wykorzystując execute statement.
Kod który pozwala wykonać zwykły select wygląda tak i jest ok:

execute block returns (
dataa timestamp,
notatka varchar(1000))
as
begin   
for execute statement 'select DATA, NOTES from HISTORY'
On external data source 'localhost: ścieżka do bazy danych .gdb' as user 'sysdba' PASSWORD 'masterkey'
INTO
:dataa,
:Notatka
do SUSPEND;
end 

ale jak chcę wykonać select z warunkiem daty to zaczyna się problem:

execute block returns (
dataa timestamp,
notatka varchar(1000))
as
begin   
for execute statement 'select DATA, NOTES from HISTORY WHERE DATA < 2016-01-20'
On external data source 'localhost: ścieżka do bazy danych .gdb' as user 'sysdba' PASSWORD 'masterkey'
INTO
:dataa,
:Notatka
do SUSPEND;
end 

ponieważ tak zapisany select baza odczytuję jako mniejsze od 1995 a umieszczenie daty w pojedynczym cudzysłowie ' '

'select DATA, NOTES from HISTORY WHERE DATA < '2016-01-20' '

jest odczytywane jako select DATA, NOTES from HISTORY WHERE DATA <
W jaki sposób należy napisać taki blok aby wykonał się poprawnie lub może jest jakiś inny sposób na przekopiowanie danych z jednej bazy do drugiej.

1

A spróbuj wyescejpować pojedynczy cudzysłów drugim:

execute block returns (
dataa timestamp,
notatka varchar(1000))
as
begin   
for execute statement 'select DATA, NOTES from HISTORY WHERE DATA < ''2016-01-20'''
On external data source 'localhost: ścieżka do bazy danych .gdb' as user 'sysdba' PASSWORD 'masterkey'
INTO
:dataa,
:Notatka
do SUSPEND;
end 
0
Mr.YaHooo napisał(a):

A spróbuj wyescejpować pojedynczy cudzysłów drugim:

execute block returns (
dataa timestamp,
notatka varchar(1000))
as
begin   
for execute statement 'select DATA, NOTES from HISTORY WHERE DATA < ''2016-01-20'''
On external data source 'localhost: ścieżka do bazy danych .gdb' as user 'sysdba' PASSWORD 'masterkey'
INTO
:dataa,
:Notatka
do SUSPEND;
end 

Złoty człowiek, wielkie dzięki za pomoc.
Wcześniej próbowałem podwójnego ale musiałem mieć błąd bo nie działało a teraz śmiga. Jeszcze raz wielkie dzięki za pomoc.

0

Nie ma za co :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1