Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » ElevateDB Technical Support » Support Forums » ElevateDB SQL » View Thread |
Messages 1 to 6 of 6 total |
INSERT TABLE |
Fri, May 28 2010 3:49 AM | Permanent Link |
Josselin | Hi,
With DBISAM it was possible to do that for INSERT record in a Table : PROC.SQL.Clear; PROC.SQL.Add('INSERT INTO ListePerso(Code,Libelle,Unite,Valeur,Global,Partiel,Etat)'); PROC.SQL.Add('VALUES(''A.211.23'',''Ossatures de portiques (Sauf A.213)'',''m2'',0,0,0,''F'');'); PROC.SQL.Add('INSERT INTO ListePerso(Code,Libelle,Etat)'); PROC.SQL.Add('VALUES(''Z.99'',''-------------- Fin du calcul ---------------'',''Z'');'); if not PROC.Prepared then PROC.Prepare; PROC.ExecSQL; When I do that with ElevateDB, I have an error message. It's not possible to do multiple INSERT in the same Query ? Thanks for your response Bruno |
Fri, May 28 2010 4:20 AM | Permanent Link |
Uli Becker | Josselin,
> > With DBISAM it was possible to do that for INSERT record in a Table : with a query you can only execute one statement. You should use a Script instead like this: ExecuteImmediate('Insert into myTable.....'); ExecuteImmediate('Insert into myTable.....'); ExecuteImmediate('Insert into myTable.....'); etc. Uli |
Fri, May 28 2010 5:22 AM | Permanent Link |
Josselin | Thanks for your response
I have make this script : With Script1 do begin DatabaseName := 'DATA1'; SQL.Clear; SQL.Add('SCRIPT ()'); SQL.Add('BEGIN'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(1,'''+Main.EDBEngine1.QuotedSQLStr('Nombre d''heures')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(2,'''+Main.EDBEngine1.QuotedSQLStr('Nombre de jours / semaine')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(3,'''+Main.EDBEngine1.QuotedSQLStr('Nombre d''occupants par jour')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(4,'''+Main.EDBEngine1.QuotedSQLStr('Nombre de visiteurs par jour')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(5,'''+Main.EDBEngine1.QuotedSQLStr('Nombre de jours chauffés supplémentaires / tranche')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(6,'''+Main.EDBEngine1.QuotedSQLStr('Nombre d''heures chauffés supplémentaires')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(7,'''+Main.EDBEngine1.QuotedSQLStr('Consommation d''eau en litre par occupant par jour')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(8,'''+Main.EDBEngine1.QuotedSQLStr('Consommation d''eau en litre par visiteur par jour')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(9,'''+Main.EDBEngine1.QuotedSQLStr('Nombre d''agents de gardiennage par jour')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(10,'''+Main.EDBEngine1.QuotedSQLStr('Nombre d''heures de gardiennage par agent et par jour')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(11,'''+Main.EDBEngine1.QuotedSQLStr('Nombre de personne pour l''accueil par jour')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(12,'''+Main.EDBEngine1.QuotedSQLStr('Nombre d''heures d''accueil par personne et par jour')+''')'';'); SQL.Add('EXECUTE IMMEDIATE ''INSERT INTO Occupation(Ordre,Libelle) VALUES(13,'''+Main.EDBEngine1.QuotedSQLStr('Nombre d''heures par tranche')+''')'';'); SQL.Add('END'); ExecScript; end; I have this error message "ElevateDB Error #700 An error was found in the statement at line 3 and column 19 (Expected ) but instead found heures) |
Fri, May 28 2010 5:41 AM | Permanent Link |
Josselin | I found why it's not working. It's because my string must be write like this :
QuotedSQLStr('Nombre d''''heures') |
Fri, May 28 2010 6:19 AM | Permanent Link |
Uli Becker | Josselin,
if you have many inserts, it could be better to write a stored procedure and call this procedure using params for the values, you want to enter. Once prepared, that should be very fast as well. Uli |
Mon, Apr 22 2013 7:21 PM | Permanent Link |
Suat Hakki Dem | <<<<
Josselin wrote: Hi, With DBISAM it was possible to do that for INSERT record in a Table : PROC.SQL.Clear; PROC.SQL.Add('INSERT INTO ListePerso(Code,Libelle,Unite,Valeur,Global,Partiel,Etat)'); PROC.SQL.Add('VALUES(''A.211.23'',''Ossatures de portiques (Sauf A.213)'',''m2'',0,0,0,''F'');'); PROC.SQL.Add('INSERT INTO ListePerso(Code,Libelle,Etat)'); PROC.SQL.Add('VALUES(''Z.99'',''-------------- Fin du calcul ---------------'',''Z'');'); if not PROC.Prepared then PROC.Prepare; PROC.ExecSQL; When I do that with ElevateDB, I have an error message. It's not possible to do multiple INSERT in the same Query ? Thanks for your response Bruno >>>> you may also try this INSERT INTO ListePerso(Code, Libelle, Unite, Valeur, Global, Partiel, Etat) VALUES ('A.211.23', 'Ossatures de portiques (Sauf A.213)', 'm2', 0, 0, 0, 'F'), ('Z.99', '-------------- Fin du calcul ---------------', NULL, NULL, NULL, NULL, 'Z'); Suat |
This web page was last updated on Saturday, April 27, 2024 at 08:52 PM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |