Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-09-2017
LIGERO LIGERO is offline
Miembro
 
Registrado: jun 2007
Posts: 42
Poder: 0
LIGERO Va por buen camino
Error al ejecutar consulta de inserción

Buenas tarde:

Necesito hacer los siguiente

Código SQL [-]
Select @CodigoFoto = coalesce(MAX(codigo),0)+1 FROM CMRC_FOTOS;
Select @CodigoArticulo = CODARTICULO FROM ARTICULOS WHERE REFPROVEEDOR like :REFDELPROVEEDOR;

INSERT INTO CMRC_fotos values (@CodigoFoto,:FOTO,DEFAULT);

INSERT INTO CMRC_FOTOSARTICULOS (CODARTICULO,POSICION, ORDEN, PORTADA, CODFOTO, VERSION) 
VALUES (@CodigoArticulo,1,1,'T',@CodigoFoto,DEFAULT);


UPDATE ARTICULOS SET VISIBLEWEB=:VisibleEnWeb WHERE CODARTICULO=@CodigoArticulo;

Donde obtengo valores de unas tablas, para posteriormente a través de los parámetros REFDELPROVEEDOR, FOTO Y VisibleEnWeb, realizar las inserción de un registro con una foto y asignarle dicha foto a un artículo.

Hasta ahí, creo que la consulta no está mal hecha.

El problema es que no consigo que me funcione.
Estoy utilizando un SQLQuery y para mi base de datos utilizo SQLServer.

Aquí pongo el código de la inserción de una imagen.

Código:
procedure TForm1.CargarImagen3(directorio: string; indice: integer; visibleWEB : boolean);
var fichero: string;
    Imagen : TBitMap;
    Buffer : TStream;
begin

  Imagen := TBitmap.Create;
  Buffer := TMemoryStream.Create;

  fichero := directorio+'\'+FileListBox1.Items.Strings[indice];

  if (ANSIUpperCase(ExtractFileExt(fichero)) = '.JPG')
      or (ANSIUpperCase(ExtractFileExt(fichero)) = '.JPEG') then
  begin
    Imagen := ConvertJPG2BMP(fichero);
    Imagen.SaveToStream(buffer);
    DM.SQLQuery2.Params.ParamByName('FOTO').LoadFromStream(buffer,ftblob);
  end
  else
    DM.SQLQuery2.Params.ParamByName('FOTO').LoadFromFile(fichero,ftblob);


  DM.SQLQuery2.Params.ParamValues['REFDELPROVEEDOR'] := NombreSinExtension(FileListBox1.Items.Strings[indice]);



  DM.SQLQuery2.Params.ParamValues['VISIBLEENWEB'] := visibleWeb;

  DM.AplicarCambios(DM.SQLConnection1, DM.ClientDataSet2, false);


end;
Y el código de AplicarCambios es

Código:
procedure TDM.AplicarCambios(SQLConnection : TSQLConnection; ClientDataSet : TClientDataSet; seleccion : Boolean);
begin
  SQLConnection.Close;
  SQLConnection.Open;

  if seleccion = true then
    ClientDataSet.Open
  else
    ClientDataSet.Execute;

  if not (ClientDataSet.State = dsInsert) then
    ClientDataSet.Edit;

  ClientDataSet.Post;
  if (ClientDataSet.ChangeCount > 0) then
        ClientDataSet.ApplyUpdates(-1);
  ClientDataSet.Close;
  ClientDataSet.Open;
end;
En la línea
ClientDataSet.Edit;

me da el error "cannot perform this operation on a closed dataset"

He buscado por todos los lados, pero no encuentro nada que me solucione el problema.

Espero que podáis ayudarme.
Gracias.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al ejecutar consulta a MySQL con Zeos DSK25 Lazarus, FreePascal, Kylix, etc. 3 31-12-2014 10:13:55
Error en delphi al ejecutar consulta SQL josi SQL 2 29-03-2008 14:38:37
Error al ejecutar consulta mierda SQL 1 11-03-2007 22:06:36
Error al Ejecutar consulta de Eliminacion JoanKa Varios 2 02-01-2007 16:10:53
ADO: Error al ejecutar una consulta repetidamente sostro Conexión con bases de datos 6 31-08-2004 17:43:50


La franja horaria es GMT +2. Ahora son las 23:12:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi