Ver Mensaje Individual
  #1  
Antiguo 09-04-2008
Dark_RavenM Dark_RavenM is offline
Miembro
 
Registrado: dic 2007
Posts: 25
Reputación: 0
Dark_RavenM Va por buen camino
ERROR lob locators cannot span transactions

Hola a todos tengo este codigo en delphi 6

procedure TForm1.Button1Click(Sender: TObject);
var
cont:integer;
begin
query1.Close;
IF OpenPictureDialog1.Execute THEN
begin
IF NOT QUERY1.Active THEN QUERY1.Open;
if QUERY1.State in [dsBrowse] then
begin
QUERY1.Insert;
QUERY3.Close;
QUERY3.sql.Clear;
QUERY3.SQL.Add('SELECT COUNT(*) CONT FROM IMAGENES');
QUERY3.OPEN;
cont:=QUERY3.FieldByName('CONT').AsInteger;
QUERY1NOIMAGEN.AsInteger :=cont+1;
QUERY1IMAGEN.LoadFromFile(OpenPictureDialog1.FileName);
QUERY1NUMPARTE.AsString:='Prueba'+IntToStr(cont+1);
QUERY1.Post;
QUERY1.ApplyUpdates;
end;
end
ELSE
SHOWMESSAGE('Se Cancelo Carga de Archivo');
end;

lo que hace es insertar una imagen a una tabla llamada imagenes en un campo blob de oracle 8i y me marca este error lob locators cannot span transactions

lo que hice fue
procedure TForm1.Button1Click(Sender: TObject);
var
cont:integer;
begin
query1.Close;
IF OpenPictureDialog1.Execute THEN
begin
IF NOT QUERY1.Active THEN QUERY1.Open;
if QUERY1.State in [dsBrowse] then
begin
Database1.StartTransaction;
QUERY1.Insert;
QUERY3.Close;
QUERY3.sql.Clear;
QUERY3.SQL.Add('SELECT COUNT(*) CONT FROM IMAGENES');
QUERY3.OPEN;
cont:=QUERY3.FieldByName('CONT').AsInteger;
QUERY1NOIMAGEN.AsInteger :=cont+1;
QUERY1IMAGEN.LoadFromFile(OpenPictureDialog1.FileName);
QUERY1NUMPARTE.AsString:='Prueba'+IntToStr(cont+1);
QUERY1.Post;
QUERY1.ApplyUpdates;
Database1.Commit;
end;
end
ELSE
SHOWMESSAGE('Se Cancelo Carga de Archivo');
end;

agregarle que empesara una transaccion y que le diera commit y ya no marca el error pero solo puedo insertar 1 registro y los demas se insertan pero sin la imagen que estoy seleccionando, alguien tiene alguna idea de como hacerlo?
Responder Con Cita