1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| try
IBTrans.StartTransaction; // TIBTransaction
// sSQL de type string : contient la requete ou le script
sSQL := 'CREATE TABLE T_EXTERNAL '+
'EXTERNAL FILE '''+ExtractFilePath(Application.ExeName)+'DONNEES.TXT'' ('+
' CIV char( 1),'+
' NAME char(40),'+
' FIRSTNAME char(30),'+
' DESCRIPT char(60),'+
' RT char(2)' +
');';
// TIBSQL : execution de la requete ou du script
with IBSQL1 do
begin
SQL.Clear;
SQL.Add(sSQL);
Prepare;
ExecQuery;
end;
IBTrans.Commit;
IBTrans.StartTransaction;
sSQL := 'CREATE PROCEDURE PS_TRANSFERT '+
'AS '+
'DECLARE VARIABLE CIV Char(1) ; '+
'DECLARE VARIABLE NAME Char(40); '+
'DECLARE VARIABLE FIRSTNAME Char(30); '+
'DECLARE VARIABLE DESCRIPT Char(60); '+
'BEGIN '+
'FOR '+
'SELECT CIV,NAME,FIRSTNAME,DESCRIPT '+
'FROM T_EXTERNAL '+
'INTO :CIV, :NAME, :FIRSTNAME, :DESCRIPT '+
'DO '+
'BEGIN '+
'INSERT INTO CLIENT (IDCLT,CIVILID,NAME,FIRSTNAME,DESCRIPT) '+
'VALUES (null,:CIV,:NAME,:FIRSTNAME,:DESCRIPT); '+
'END '+
'END;';
with IBSQL1 do
begin
SQL.Clear;
SQL.Add(sSQL);
Prepare;
ExecQuery;
end;
IBTrans.Commit;
IBTrans.StartTransaction;
sSQL := 'EXECUTE PROCEDURE PS_TRANSFERT;';
with IBSQL1 do
begin
SQL.Clear;
SQL.Add(sSQL);
Prepare;
ExecQuery;
end;
IBTrans.Commit;
IBTrans.StartTransaction;
sSQL := 'DROP PROCEDURE PS_TRANSFERT;';
with IBSQL1 do
begin
SQL.Clear;
SQL.Add(sSQL);
Prepare;
ExecQuery;
end;
IBTrans.Commit;
IBTrans.StartTransaction;
sSQL := 'DROP TABLE T_EXTERNAL;';
with IBSQL1 do
begin
SQL.Clear;
SQL.Add(sSQL);
Prepare;
ExecQuery;
end;
IBTrans.Commit;
except
IBTrans.Rollback;
end; |
Partager