Analizando mejor el código, ahora creo que el problema no está en los parámetros de la transacción, sino en el propio código y componentes que estás utilizando.
Fijate en lo siguiente:
Código Delphi
[-]
if not SQLTransaction1.InTransaction then SQLTransaction1.StartTransaction;
while not Dbf1.EOF do
begin
with SQLQuery1 do
begin
InsertSQL.Clear;
InsertSQL.Add('insert into detable values('+Dbf1.Fields[0].AsString
+','''+Dbf1.Fields[1].AsString+''')');
ExecSQL;
end;
Dbf1.Next;
end;
SQLTransaction1.CommitRetaining;
Veo confuso ese código. El nombre de componente SQLQuery1 por su nombre parece ser un decendiente de TSQLQuery, no se porque estás usando una propiedad "InsertSQL" (o estás confundiendo en el código un componente distinto que se llama "InsertSQL" o es una propiedad del componente "SQLQuery1") Si fuera la primero, asegurate que el componente InsertSQL esté conectado a cómo te dije con respecto a SQLQuery1 en el post anterior. Si es lo segundo, estas resolviendo un problema con otro problema. Deberías utilizar un componente más sencillo, un desenciente de TSQLQuery, el que solo tiene una propiedad llamada SQL que es donde insertas la instrucción SQL que deseas ejecutar.
Espero hallas entendido lo que quise decir. Sino, no me molesta y con gran gusto te aclaro la idea. Saludos. //