Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-12-2015
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Unhappy

Cita:
Empezado por Casimiro Notevi Ver Mensaje
O sea, que el problema es otra cosa que no tiene nada que ver. Debes seguir tu código paso a paso con el depurador para encontrarlo.


No, lo que ocurre, como dice ahí, es que el sitio ese que has elegido para subir las imágenes, no permite que las enlaces desde otro sitio.
Me refería a eso precisamente (el servidor de alojamiento de imágenes), use el depurador paso a paso y el error me lo arroja al leer la primera linea:

Código Delphi [-]
ADO1.sql.text:='INSERT INTO factura (cantfactu,subtfactu,ivafactu,totalfactu,horafactu,idclientef,idpagof,iduserf)'+



Cita:
Empezado por AgustinOrtu Ver Mensaje
Código Delphi [-]
Query.Parameters.ParamByName('ParamFecha').DateType := ftDate;
Query.Parameters.ParamByName('ParamFecha').DateType := ftDateTime;

Query.Parameters.ParamByName('ParamFecha').Value:= VariableFecha;

Proba con uno de esos, si te interesa almacenar tanto fecha como hora obviamente usarias ftDateTime, sino ftDate
Me sigue dando el mismo error amigo, lo que puedo ver después de tanto darle vueltas a esto es que es un error en todo el pedazo de código de el botón "guardar" (que solo tiene la query), es primera vez que trabajo con parámetros...

Código Delphi [-]
with ADOQuery1 do begin
 If active then close;
 SQL.Clear;
ADOQuery1.sql.add('INSERT INTO factura (cantfactu,subtfactu,ivafactu,totalfactu,horafactu,idclientef,idpagof,iduserf)');
ADOQuery1.sql.add('VALUES (:cantfactu,:subtfactu,:ivafactu,:totalfactu,:horafactu,:idclientef,:idpagof,:iduserF)');
with parameters do
begin
ADOQuery1.Parameters.ParamByName('cantfactu').Value := combocant.Text;
ADOQuery1.Parameters.ParamByName('subtfactu').Value := cant;
ADOQuery1.Parameters.ParamByName('ivafactu').Value := iva;
ADOQuery1.Parameters.ParamByName('totalfactu').Value := total;
ADOQuery1.Parameters.ParamByName('horafactu').Value := (FormatDateTime('yyyy/mm/dd',(Mfechahora)));
ADOQuery1.Parameters.ParamByName('idclientef').Value := form2.edtcedula.text;
ADOQuery1.Parameters.ParamByName('idpagof').Value := tpago;
ADOQuery1.Parameters.ParamByName('iduserF').Value := ('1');
end;
ADOQuery1.open;
end;
   end;

así esta ahora mismo y me sigue dando el mismo error.
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."

Última edición por ZiriusB fecha: 16-12-2015 a las 00:29:19.
Responder Con Cita
  #2  
Antiguo 16-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Primero elimina los with de tu codigo porque

1. No es aconsejable
2. No lo estas "aprovechando"

Debido a 1), casi que prefiero no explicarte el porque no lo estas "aprovechando"

Si te da un error en Query.SQL.Add es porque el query no esta inicializado (no esta creado)

No se de donde sale ADOQuery1, voy a asumir que tenes el componente en el Form actual. Tambien voy a asumir que en ADOQuery1.Connection tenes asignada una TADOConnection

Código Delphi [-]
  // este codigo esta para probar que tengas todo "en orden", luego lo quitas
  // basicamente chequea que todos los objetos que intervienen estan correctamente creados

  if not Assigned(ADOQuery1) then
    raise Exception.Create('ADOQuery1 no esta correctamente inicializado');

  if not Assigned(ADOQuery1.Connection) then
    raise Exception.Create('ADOQuery1.Connection no esta correctamente inicializado');

  if not Assigned(ADOQuery1.SQL) then
    raise Exception.Create('ADOQuery1.SQL no esta correctamente inicializado');

  if not Assigned(form2) then
    raise Exception.Create('form2 esta correctamente inicializado');

  // hasta aca, luego lo quitas


  if ADOQuery1.Active then
    ADOQuery1.Close;

  ADOQuery1.SQL.Text :=
    ' INSERT INTO factura (cantfactu,subtfactu,ivafactu,totalfactu,horafactu,idclientef,idpagof,iduserf) ' +
    ' VALUES (:cantfactu, :subtfactu, :ivafactu, :totalfactu, :horafactu, :idclientef, :idpagof, :iduserF) ';

  ADOQuery1.Parameters.ParamByName('cantfactu').Value := combocant.Text;
  ADOQuery1.Parameters.ParamByName('subtfactu').Value := cant;
  ADOQuery1.Parameters.ParamByName('ivafactu').Value := iva;
  ADOQuery1.Parameters.ParamByName('totalfactu').Value := total;

  ADOQuery1.Parameters.ParamByName('horafactu').DataType := ftDateTime;
  ADOQuery1.Parameters.ParamByName('horafactu').Value := Mfechahora;

  ADOQuery1.Parameters.ParamByName('idclientef').Value := form2.edtcedula.Text;
  ADOQuery1.Parameters.ParamByName('idpagof').Value := tpago;
  ADOQuery1.Parameters.ParamByName('iduserF').Value := '1';
  ADOQuery1.Open;
Responder Con Cita
  #3  
Antiguo 16-12-2015
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Efectivamente tengo conectado todo como debe ser, el ADOQuery1 esta en el form en el que hago la consulta, esta conectado al ADOCOnection, coloque la consulta tal cual la pasaste y sigue generando el mismo error, lo hice con el depurador activo y paso por paso, se detiene y genera el error en esta linea:

Código Delphi [-]
  ADOQuery1.SQL.Text :=
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita
  #4  
Antiguo 16-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Y cual es el error?
Responder Con Cita
  #5  
Antiguo 16-12-2015
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
First chance exception at $77682C1A. Exception class EOleException with message 'Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros'. Process ProGym.exe (5904)

Si en ese error le doy "Continue" me aparece este error:

First chance exception at $77682C1A. Exception class EDatabaseError with message 'ADOQuery1: CommandText does not return a result set'. Process ProGym.exe (2352)
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."

Última edición por ZiriusB fecha: 16-12-2015 a las 03:44:36.
Responder Con Cita
  #6  
Antiguo 16-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Código Delphi [-]
ADOQuery1.SQL.Text := 'blabla'

Esa linea no puede generarte nunca esa excepcion


Cita:
First chance exception at $77682C1A. Exception class EOleException with message 'Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros'. Process ProGym.exe (5904)
Esa excepcion se genera en un supuesto ADOQuery1.Open o ADOQuery1.ExecSQL y hay problemas de parametros (tipo, sin asignar)

Cita:
First chance exception at $77682C1A. Exception class EDatabaseError with message 'ADOQuery1: CommandText does not return a result set'. Process ProGym.exe (2352)
Esa excepcion se genera porque deberiamos usar ADOQuery1.ExecSQL, no ADOQuery1.Open (error mio, perdon)

Open se usa cuando se ejecutan sentencias SELECT, que devuelven un conjunto de filas y columnas como resultado (una tabla)

ExecSQL se usa para todas las demas sentencias: DELETE, UPDATE, INSERT, etc y devuelve un Integer, que es la cantidad de registros afectados

Cambia el Open por ExecSQL.. y de nuevo disculpas
Responder Con Cita
  #7  
Antiguo 16-12-2015
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
Código Delphi [-]
ADOQuery1.SQL.Text := 'blabla'

Esa linea no puede generarte nunca esa excepcion




Esa excepcion se genera en un supuesto ADOQuery1.Open o ADOQuery1.ExecSQL y hay problemas de parametros (tipo, sin asignar)



Esa excepcion se genera porque deberiamos usar ADOQuery1.ExecSQL, no ADOQuery1.Open (error mio, perdon)

Open se usa cuando se ejecutan sentencias SELECT, que devuelven un conjunto de filas y columnas como resultado (una tabla)

ExecSQL se usa para todas las demas sentencias: DELETE, UPDATE, INSERT, etc y devuelve un Integer, que es la cantidad de registros afectados

Cambia el Open por ExecSQL.. y de nuevo disculpas
Ya me parecía raro estar usando Open, pero bueno seguía al pie de la letra tus instrucciones jajajaja,

Código Delphi [-]
  ADOQuery1.Parameters.ParamByName('cantfactu').Value := combocant.Text;

Me genera el error y me marca el primer parámetro, si lo quito y lo quito de la consulta me genera error en el siguiente y así sucesivamente. Esto me esta dando muchos dolores de cabeza :S
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
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
guardar precios. numeric o float? Patricio Firebird e Interbase 5 07-10-2008 16:21:17
guardar text como un float mjjj Varios 17 20-12-2007 11:44:17
Problemas con los float tato Varios 2 03-04-2006 11:57:38
problemas con float y redondeos wonder boy Firebird e Interbase 17 27-12-2005 20:59:06
Problemas con float.... ilichhernandez Varios 2 20-12-2005 16:19:20


La franja horaria es GMT +2. Ahora son las 07:55:47.


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