Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-07-2008
Gabichu Gabichu is offline
Miembro
 
Registrado: jul 2008
Posts: 10
Poder: 0
Gabichu Va por buen camino
Exclamation Dynamic Sql Error. Necesito ayuda

Hola!! Soy nueva por aca y llevo menos de un mes programando en delphi por lo tanto cualquier ayuda o sugerencia es bienvenida..

Estoy tratando de agregar el valor en letras de cierto monto

Este es el codigo ahora, ya probé varias cosas y siempre obtengo errores

El error que obtengo es "Dynamic sql errror.Error Code:104 Invalid token"

Código Delphi [-]
modifventa.SQL.Clear;
modifventa.SQL.Add('update venta set procesado=1 where cod_venta='+ventas.Fields[0].AsString);
modifventa.ExecSQL;
f_menu.conex.Commit;
///generar el total en letras
try letras.Numero:=ventas.Fields[5].AsFloat; //total de la factura en guaranies
letras.Moneda:='Guaranies'; //nombre de moneda
letras.Centavos:='Centimos'; //Centimos
letras.Masculino:=true;
//venta.Fields[20].AsString:=letras.AsString;
texto:=letras.AsString; //asiganar el valor a una variable
// showmessage(texto);
finally letras.Free; end ;
//anteriormente probe con esto
{modifventa2.SQL.Clear;
modifventa2.SQL.Add('update venta set TOTLETRAS='+texto+' where cod_venta='+ventas.Fields[0].AsString);
modifventa2.ExecSQL;
f_menu.conex.Commit;} //agregar el total de financiacion en la tabla de ventas
modifventa2.SQL.Clear;
modifventa2.SQL.Add('update venta set TOT_FINANCIACION='
 +floattostr(totFinanc)+',TOTLETRAS='+texto+' where cod_venta='+ventas.Fields[0].AsString);
//se que la porcion de codigo+',TOTLETRAS='+texto+' es la que produce el error ya que si escribo solo esto
//modifventa2.SQL.Add('update venta set TOT_FINANCIACION='
// +floattostr(totFinanc)+' where cod_venta='+ventas.Fields[0].AsString); entonces no hay error
modifventa2.ExecSQL; f_menu.conex.Commit;

creo que di muchas vueltas... ojala puedan ayudarme.. desde ya gracias...

Última edición por dec fecha: 29-07-2008 a las 17:38:27.
Responder Con Cita
  #2  
Antiguo 29-07-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Código Delphi [-]
 
With modifventa do 
  Begin
     // Si cod_venta es alfanumérico debes agregar comilla doble
    SQL. text := 'update venta set procesado=1 where cod_venta='''+ventas.Fields[0].AsString + '''';
   ExecSQL;
   f_menu.conex.Commit;
try 
   letras.Numero:=ventas.Fields[5].AsFloat;
   letras.Moneda:='Guaranies'; 
   letras.Centavos:='Centimos'; 
   letras.Masculino:=true;
   texto:=letras.AsString; 
finally 
   letras.Free; 
end ;
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 29-07-2008
Gabichu Gabichu is offline
Miembro
 
Registrado: jul 2008
Posts: 10
Poder: 0
Gabichu Va por buen camino
La linea del problema

Código Delphi [-]
modifventa2.SQL.Add('update venta set TOT_FINANCIACION='+floattostr(totFinanc)+',TOTLETRAS='+texto+' where cod_venta='+ventas.Fields[0].AsString);
La linea corregida
Código Delphi [-]
modifventa2.SQL.Add('update venta set TOT_FINANCIACION='+floattostr(totFinanc)+',TOTLETRAS='''+texto+''' where cod_venta='+ventas.Fields[0].AsString);

Gracias por la ayuda pude resolver mi pequeño inconveniente..
El problema eran las comillas. esto '+texto+' se convirtio en esto '''+texto+''' y asunto solucionado...

Última edición por Gabichu fecha: 29-07-2008 a las 20:04:20. Razón: Mensaje incompleto
Responder Con Cita
  #4  
Antiguo 29-07-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Proba utilizar la funcion QuotedStr

Código Delphi [-]

declaracion 

function QuotedStr(const S: string): string;
   description 

Returns the quoted version of a string. A single quote character (') is inserted at the beginning and end of string S, and each single quote character in the string is repeated.     
example 

var s : string;

s:='Delphi''s Pascal';
//ShowMessage returns Delphi's Pascal
s := QuotedStr(s);
//ShowMessage returns 'Delphi''s Pascal'
Responder Con Cita
  #5  
Antiguo 30-07-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por Kipow Ver Mensaje
Proba utilizar la funcion QuotedStr

Es útil esa función amigo pero yo no la recomiendo y te diré por que.

cuando incrustas pl/sql en delphi de muchas líneas QuotedStr solo añade complejidad al código, en cambio una consulta de muchas líneas correctamente indentada, cuyas cadenas están definidas con comilla doble es mucho más facil de leer.

Experiencia personal amigo.

Saludos
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #6  
Antiguo 31-07-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Bueno por experiencia personal la veo mucho mas practica, normalmente cuando necesito mucho codigo PL/SQL utilizo algun componente para trabajar. Pero esto es para que pruebe a usarla y segun el decida si se le complica o no la forma de ver el codigo.

Saludos.
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
dynamic cube para delphi _CALI MS SQL Server 9 27-08-2008 00:59:44
Dynamic sql error -303 amkalzada Conexión con bases de datos 2 27-06-2008 11:12:33
Dynamic Sql error -303 amkalzada Firebird e Interbase 1 16-06-2008 15:37:51
dynamic Sql Error digital Firebird e Interbase 1 03-03-2004 09:48:26
Necesito ayuda : E_FAIL status error jvega Conexión con bases de datos 0 26-05-2003 15:31:51


La franja horaria es GMT +2. Ahora son las 06:20:00.


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