Ciao a tutti,
finalmente ho deciso di fare il grande passo, la migrazione da database Access a Firebird.
Ovviamente ho la necessità di migrare anche i dati, qualcuno puo' darmi qualche informazione al riguardo?
Grazie![]()
Ciao a tutti,
finalmente ho deciso di fare il grande passo, la migrazione da database Access a Firebird.
Ovviamente ho la necessità di migrare anche i dati, qualcuno puo' darmi qualche informazione al riguardo?
Grazie![]()
La domanda è un po' generica. Più che altro, hai esperienza di qualcosa riguardo FireBird?![]()
P.S.: ottima scelta, comunque!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Diciamo che mi sto documentando, comunque ho già fatto delle prove di collegamento con alcuni db di prova, sia con dbexpress che con i componenti di interbase.
Spiego quello che ho fatto fino adesso:
Ho creato un db di nome dati.fdb
Ho covertito il mio db dati.mdb con un tool di conversione che ho trovato in rete, nella conversione ho anche importato i dati.
Ho creato un'accesso con i componenti di interbase per visualizzare i dati in una dbgrid.
Ottengo un'errore di questo tipo:
"Dynamic SQL error code = 104 token unknow - line 1, char 8 from"
Che è sucecsso?
A occhio c'è un'istruzione SQL errata. Hai eseguito una query che andava bene in access su firebird![]()
Le sintassi SQL di ACCESS e Firebird sono parecchio differenti.
Quello di Firebird è un SQL (quasi ) completamente ANSI compatibile,
mentre quello di Access invece ha poco di standard.
Posta l'istruzione e qualcuno t aiuterà.
Ciao
Ho usato un tool di conversione e pertanto l'istruzione se l'è creata in automatico, comunque ho appena risolto utilizzando un'altro programma che ho trovato (sempre in versione demo) che ha svolto il suo compito senza riportare alcun tipo di errore.
Grazie lo stesso per l'aiuto.![]()
Ho riscontrato un problemino, ho una tabella con 2 campi che in access era cosi' composta:
id autoincrement, descrizione varchar (50)
nella conversione ho notato che il campo id è diventato di tipo integer e non viene creato un numero progressivo (contatore) automatico ad ogni inserimento di un nuovo record.
Tramite un ottimo tool di gestione firebird sono riuscito a farlo diventare autoincrement, vi posto il codice
CREATE TABLE "Accessori" (
"idAccessori" INTEGER NOT NULL,
"descrizione " VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE ISO8859_1);
ALTER TABLE "Accessori" ADD PRIMARY KEY ("id");
CREATE TRIGGER "BI_Accessori_id" FOR "Accessori"
ACTIVE BEFORE INSERT
POSITION 0
AS
BEGIN
IF (NEW."id" IS NULL) THEN
NEW."id" = GEN_ID("Accessori_id_GEN", 1);
END;
Cosa ho sbagliato?
Non esiste un campo autoincrementale in FireBird: esistono tuttavia i generatori, elementi con cui è possibile "generare" - appunto - valori progressivi, diversi anche per ogni utente e transazione, da attribuire (via trigger, stored o software client) al campo univoco eletto come "autoincrementale".Originariamente inviato da danz67
nella conversione ho notato che il campo id è diventato di tipo integer e non viene creato un numero progressivo (contatore) automatico ad ogni inserimento di un nuovo record.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Quindi una volta creato un generatore direttamente da firebird posso gestirlo tranquillamente via software? Potrei creare una funzione per contare le righe, selezionare la max e attribuire un valore superiore di 1. Che ne pensi?
![]()