Mysql
 sql >> база данни >  >> RDS >> Mysql

Delphi - TSQLQuery оставя процес в MySQL дори след като е бил освободен

Не създавайте отново връзката си отново и отново, нито заявката си. Използвайте параметри за заявката; отворете връзката веднъж, попълнете параметрите на заявката, изпълнете я, затворете заявката (но не и връзката), попълнете отново параметрите на заявката и я изпълнете отново.

Нещо подобно (използвайки Advantage Database Server, но концепцията е същата):

// 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. присвояване на стойност на mysql на вградена променлива

  2. Задайте опция по подразбиране в падащото меню php и запазете при изпращане на заявка

  3. Как да съхранявате многоезично текстово поле в mysql с php?

  4. Пребройте броя на под таговете от XML в SQL

  5. Laravel Eloquent query JSON колона с Where In?