???!!! avevo chiesto la sql di inserimento.
leggendo il 3d ho notato qualcosa di strano e inutile.
al di là della doppia richiesta mysql prima e postgresql dopo, supponendo che hai risolto lato mysql, per postgresql fai così:
dopo aver creato la connessione al db, prendi l'oggetto query, nominiamola ad esempio MyQueryPostgre.
//per creare la tabella
whith MyQueryPostgre do
begin
sql.clear;
sql.add('CREATE TABLE MyTableName( ID SERIAL PRIMARY KEY, DESCRIZIONE TEXT NOT NULL, CAMPONUMERICO '+
‘ INT NOT NULL, CAMPOCHAR CHAR(50), CAMPOAVIRGOLA REAL )’);
sql.execute;
end;
per inserire il record:
VAR
A, C: STRING;
B: INTEGER;
D: REAL;
BEGIN
...
A:='PIPPO';
B:=10;
C:='PLUTO';
D:=20.78;
...
whith MyQueryPostgre do
begin
sql.clear;
sql.add('INSERT INTO MyTableName(DESCRIZIONE,CAMPONUMERICO,CAMPOCHAR,CAMPOAVIRGOLA)' +
' VALUES ( ' + A +', ' + B +', ' + C +', ' + D +' )’);
sql.execute;
end;
END;
Se usi autoincrement non devi inserire l'id, ci pensa il db ad inserirlo.
se devi recuperare un id allora valorizzi l'id facendo attenzione che il nr sia disponibile.
se vuoi usare i parametri:
whith MyQueryPostgre do
begin
sql.clear;
sql.add('INSERT INTO MyTableName(DESCRIZIONE,CAMPONUMERICO,CAMPOCHAR,CAMPOAVIRGOLA)' +
' VALUES ( :A , :B , :C , :D )’);
parambyname('A').AsString:='PIPPO';
parambyname('B').AsInteger:=10;
parambyname('C').AsString:='PLUTO';
parambyname('D').AsFloat:=20,78;
sql.execute;
end;
END;