Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-09-2007
Avatar de rodrigodeoz
rodrigodeoz rodrigodeoz is offline
Miembro
 
Registrado: sep 2007
Posts: 30
Poder: 0
rodrigodeoz Va por buen camino
Ayuda con Update aun memo

Saludos!!!

Espero alguien me pueda ayudar.

Tengo un problema al momento de actualizar un campo de tipo memo en en mi BD tengo la siguente consulta:

Código Delphi [-]
    with dm.qadulto do begin
        close;
        sql.Clear;
        sql.add('update nino set motivo=:0');
        SQL.Add('WHERE cve_cte=:cv');
        parambyname('cv').Value:=cni;
        parambyname('0').AsMemo:=mc.Text;
        execsql;
    end;

La consulta jala bien pero si mto mas de 6 lineas de texto me marca AccesViolation, y necesito poder guardas mas de 6 lineas.
el componente es Query(DBTable). si laguien me puede decir otro metodo se lo agradeceria mucho

Última edición por dec fecha: 25-09-2007 a las 17:19:51.
Responder Con Cita
  #2  
Antiguo 25-09-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
La verdad es que no lo he probado, pero ¿te funcionaria asi?

Código Delphi [-]
 with dm.qadulto do begin
        close;
        sql.Clear;
        sql.add('update nino set motivo=:0');
        SQL.Add('WHERE cve_cte=:cv');
        parambyname('cv').Value:=cni;
        parambyname('0')..Assign(mc);
        execsql;
    end;

espero que si .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 25-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Qué base de datos utilizas?
- Quizas tenga algún tipo de restricciones con respecto a los memos.

Cómo está definida la tabla nino?
- Si el campo cve_cte de la tabla está definido como BLOB no deberías tener problemas.
- Si está definido como un string grande, quizás hayas alcanzado el límite.
Responder Con Cita
  #4  
Antiguo 25-09-2007
Avatar de rodrigodeoz
rodrigodeoz rodrigodeoz is offline
Miembro
 
Registrado: sep 2007
Posts: 30
Poder: 0
rodrigodeoz Va por buen camino
Unhappy

utilizo Acces, el campo cve_cte es el indice de la tabla, el campo donde guardo el texto es en motivo y este esta definido como memo, y no es por el limite, en un principio tambien pense en eso, pero me fui directo a la tabla y le escribi mastante texto y si lo guardo bien, y no se que mas hacer
Responder Con Cita
  #5  
Antiguo 25-09-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por rodrigodeoz Ver Mensaje
utilizo Acces, el campo cve_cte es el indice de la tabla, el campo donde guardo el texto es en motivo y este esta definido como memo, y no es por el limite, en un principio tambien pense en eso, pero me fui directo a la tabla y le escribi mastante texto y si lo guardo bien, y no se que mas hacer
Hiciste lo que te he sugerido?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #6  
Antiguo 25-09-2007
Avatar de rodrigodeoz
rodrigodeoz rodrigodeoz is offline
Miembro
 
Registrado: sep 2007
Posts: 30
Poder: 0
rodrigodeoz Va por buen camino
si ya lo hice y me marca error: Cannot assing TMemo to a TParam.
Responder Con Cita
  #7  
Antiguo 25-09-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por rodrigodeoz Ver Mensaje
si ya lo hice y me marca error: Cannot assing TMemo to a TParam.
A bueno, ¿Y asi?

Código Delphi [-]
with dm.qadulto do begin
        close;
        sql.Clear;
        sql.add('update nino set motivo=:0');
        SQL.Add('WHERE cve_cte=:cv');
        parambyname('cv').Value:=cni;
        parambyname('0').Assign(mc.Lines);
        execsql;
    end;

Deberia funcionarte.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #8  
Antiguo 25-09-2007
Avatar de rodrigodeoz
rodrigodeoz rodrigodeoz is offline
Miembro
 
Registrado: sep 2007
Posts: 30
Poder: 0
rodrigodeoz Va por buen camino
Talking

Gracias por la atencion prestada, ya he resuelto mi problema es que en lugar de enviar un parametro de tipo .asMemo lo cambie por un Parametro de tipo asBlob y mi consulta quedo asi

Código Delphi [-]
 
with dm.qadulto do begin
        close;
        sql.Clear;
        sql.add('update nino set motivo=:0');
        SQL.Add('WHERE cve_cte=:cv');
        parambyname('cv').Value:=cni;
        parambyname('0').AsBlob:=mc.Text;
        execsql;
    end;
Responder Con Cita
  #9  
Antiguo 25-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Código Delphi [-]
sql.add('update nino set motivo=:0');
Esto es una letra O o es un el número 0 (cero)?
Si es un cero, puede ser ese el problema, prueba lo siguiente:
Código Delphi [-]
with dm.qadulto do begin
        close;
        sql.Clear;
        sql.add('update nino set motivo=:motivo');
        SQL.Add('WHERE cve_cte=:cv');
        parambyname('cv').Value:=cni;
        parambyname('motivo').AsMemo:=mc.Text;
        execsql;
    end;

Tambien puedes probar:
Código Delphi [-]
        parambyname('motivo').AsBlob:=mc.Text;

Nota: no te preocupes de que los campos y los parámetros tengan el mismo nombre. El tener el : (dos puntos) adelante ya los diferencia.
Responder Con Cita
  #10  
Antiguo 25-09-2007
Avatar de rodrigodeoz
rodrigodeoz rodrigodeoz is offline
Miembro
 
Registrado: sep 2007
Posts: 30
Poder: 0
rodrigodeoz Va por buen camino
Thumbs up

Gracias por la ayuda, mi consulta quedo como el ultimo consejo que medieron
Responder Con Cita
Respuesta



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
Ayuda [MEMO]? peripla Varios 2 30-08-2007 23:35:07
Ayuda con un Memo lucero_chivas C++ Builder 6 25-05-2007 21:51:28
Edits... Memo... <Ayuda> Lautarox Varios 6 14-06-2006 18:20:06
ayuda con UPDATE droguerman MS SQL Server 2 29-05-2006 20:48:28
Ayuda con un memo cesarjbf OOP 14 25-09-2003 19:04:56


La franja horaria es GMT +2. Ahora son las 16:48:25.


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