INSERT INTO tabla (campo1,campo2) VALUES (1,?)
alguien que me pueda ayudar con esto?
saludos y de antemano gracias por su apoyo.
Escrito 13 noviembre 2009 - 12:25
INSERT INTO tabla (campo1,campo2) VALUES (1,?)
Escrito 13 noviembre 2009 - 12:30
Que tal amigos, tengo un problema, necesito insertar un registro que contiene campos blob (binarios) a una base de access, pero esto por medio de un query es decir
sql
INSERT INTO tabla (campo1,campo2) VALUES (1,?)
alguien que me pueda ayudar con esto?
saludos y de antemano gracias por su apoyo.
Escrito 13 noviembre 2009 - 01:02
procedure TForm1.Button4Click(Sender: TObject); var st:Tstream; begin st := TMemoryStream.Create; clNotas.SaveToStream(st); with saa do begin Params[0].Value := clID_AFILIADO.Value; Params[1].Value := clDOCUMENTO.Value; Params[2].Value := clNOMBRE.Value; Params[3].Value := clAPELLIDOS.Value; Params[4].Value := clTELEFONOS.Value; Params[5].LoadFromStream(st,ftBlob); ExecuteMethod end; st.free end;
Escrito 13 noviembre 2009 - 11:03
Claro amigo solo una pregunta, que conector usas?
qryTmp := TzQuery.Create(nil); with qryTmp do begin try Connection:= FBDatos; SQL.Clear; SQL.Add('update tabla set'); SQL.Add('campoblob= :ValBlob,'); SQL.Add('where'); SQL.Add('(clave='+BCliente+')'); Params[0].DataType := ftBlob; Params[0].LoadFromStream(KeyEnCrip,ftBLOB); try ExecSQL; except raise exception.create('Los datos Critográficos no se almacenaron'); end; finally free; end; end;
Escrito 14 noviembre 2009 - 06:12
Escrito 14 noviembre 2009 - 09:23
Tengo entendido que los ADO no manejan muy bien los datos BLOB, si me equivoco, que me corrijan.
Saludos.
Escrito 14 noviembre 2009 - 02:01
procedure TForm1.Button1Click(Sender: TObject); var Stream: TStream; Query: TADOQuery; begin Stream := TMemoryStream.Create; (ADOTable1.FieldByName('NOTAS') as TBlobField).SaveToStream(Stream); Query := TADOQuery.Create(self); try with Query do begin Connection := ADOConnection1; Sql.Add('UPDATE TABLA SET NOTAS = :CAMPOBLOB WHERE ID = 1'); Parameters.ParamByName('CAMPOBLOB').LoadFromStream(Stream, ftBLOB); ExecSQL end; finally Stream.Free; Query.Free; end; end;
Escrito 13 junio 2013 - 07:20
Coincidencialmente estaba lidiando ayer con algo similar, ya que no me tomaba el valor del campo Blob como lo hace con los otros campos, finalmente lo resolví pasando el valor del parámetro del Campo Blob mediante un TStream.
El siguiente ejemplo muestra el paso de parámetros desde un TClientDatset (lado cliente) de nombre cl a un TSQlServerMethod de nombre (saa) en el que el campo NOTAS es de tipo Blob.
delphi
procedure TForm1.Button4Click(Sender: TObject); var st:Tstream; begin st := TMemoryStream.Create; clNotas.SaveToStream(st); with saa do begin Params[0].Value := clID_AFILIADO.Value; Params[1].Value := clDOCUMENTO.Value; Params[2].Value := clNOMBRE.Value; Params[3].Value := clAPELLIDOS.Value; Params[4].Value := clTELEFONOS.Value; Params[5].LoadFromStream(st,ftBlob); ExecuteMethod end; st.free end;