sql >> Database >  >> RDS >> Mysql

Delphi - TSQLQuery laat een proces achter op MySQL, zelfs nadat het is vrijgegeven

Maak uw verbinding niet steeds opnieuw, noch uw vraag. Gebruik parameters voor de query; open de verbinding eenmaal, vul de parameters van de query in, voer deze uit, sluit de query (maar niet de verbinding), vul de queryparameters opnieuw in en voer deze opnieuw uit.

Zoiets als dit (met Advantage Database Server, maar het concept is hetzelfde):

// Both Create() calls should be followed by try..finally to ensure they're 
// cleaned up after. Omitted for brevity.
Conn := TAdsConnection.Create(nil);
// Configure connection parameters here
Conn.Open;

Qry := TAdsQuery.Create(nil);
Qry.AdsConnection := Conn;
Qry.SQL.Add('INSERT INTO SOMETABLE (COL1, COL2, COL3)');
Qry.SQL.Add('VALUES (:COL1, :COL2, :COL3)');
while not OtherTable.Eof do
begin
  Qry.ParamByName('COL1').AsInteger := OtherTable.FieldByName('COL1').AsInteger;
  Qry.ParamByName('COL2').AsString := OtherTable.FieldByName('COL2').AsString;
  Qry.ParamByName('COL3').AsDateTime := OtherTable.FieldByName('COL3').AsDateTime;
  Qry.ExecSQL;
  Qry.Close;
  OtherTable.Next;
end;
// Free query
Conn.Close;
// Free connection.


  1. Hoe vraag ik tussen twee tijdbereiken met behulp van MySQL?

  2. Tabelnaampatroon mag niet NULL of leeg zijn in java

  3. SQL Server AlwaysOn-functies gebruiken

  4. Verzamelmethode:COUNT-functie in Oracle Database