Come si effettua la connessione ad un database e l'esecuzione di una query in SQL Embedded?
Come si effettua la connessione ad un database e l'esecuzione di una query in SQL Embedded?
Uso MySQL
Ho trovato un esempio su un libro di Basi di Dati:
Questo è SQL embedded giusto?codice:#include <stdlib.h> int main () { exec sql begin declare section; char *NomeDip="Manutenzione"; char *CittaDip="Pisa"; int numeroDip=20; exec sql end declare section; exec sql connect to utente@librobd; if (sqlca.sqlcode!=0) printf ("Connessione al db non riuscita"; else { exec sql insert into Dipartimento values(:NomeDip,:CittaDip,:NumeroDip); exec sql disconnect all; } }
up
Bisogna fare un po' di chiarezza, probabilmente ti riferisci a Embedded SQL (richiede un apposito preprocessore) e non a SQL Embedded (termine generico, nonché improprio, che indica un qualsiasi DBMS di tipo "embedded").
Se ti riferisci a Embedded SQL allora hai bisogno di moduli specifici per il tuo DBMS.
Indica il DBMS utilizzato ed il tuo compilatore di riferimento.
"Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."
DBMS: MySQL
Compilatore: Mingw (IDEev-C++)
Leggi questo articolo.
"Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."
Non trovo la connessione al database...
codice:#include <stdlib.h> #include <stdio.h> /*----------------------------------------------------------------*/ EXEC SQL INCLUDE SQLCA; short sqlcode; EXEC SQL BEGIN DECLARE SECTION; int host_a; double host_b; char host_c; EXEC SQL END DECLARE SECTION; EXEC SQL DECLARE csr1 CURSOR FOR SELECT a, b, c FROM table1 WHERE x = :hostvar1; /*----------------------------------------------------------------*/ void main (void) { hostvar1 = 42; EXEC SQL OPEN csr1; if (sqlcode < 0) exit(0); while (rc >= 0 && rc != 100) { EXEC SQL FETCH csr1 INTO :host_a, :host_b, :host_c; printf("Fetch %d, %lf, %s\n", host_a, host_b, host_c); } EXEC SQL CLOSE csr1; }