Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-02-2016
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
problemas con ibdataset1.parambyname en ibx

Hola,
por mas que hago pruebas y reviso no soy capaz de saber el por qué no funciona esto:

Código Delphi [-]
function tfagregausuario.verificarnick:byte;
begin
ibdataset1.SelectSQL.clear;
ibdataset1.selectSQL.Text:='select * from usuarios';
ibdataset1.open;
ibdataset1.Close;
ibdataset1.SelectSQL.clear;
ibdataset1.selectSQL.add('select * from usuarios where nick = :nick4');
ibdataset1.ParamByName('nick4').value:=lowercase(enick.Text);
ibdataset1.open;

cuando lo ejecuto, me dice que nick4 no existe.
Leyendo y buscando sobre los componentes ibx, recomiendan no usar los ibtable ni los ibquery porque son para migracion, lo mas recomendable es usar los ibdataset. Pues bien, teniendo en cuenta, como sabeis, que estaba acostumbrado a los zeos y no he tenido problemas con ellos, ni con lo que escribi antes, no entiendo porque aqui no me deja pasar el parametro si es lo mismo que estuve haciendo con zeos y lo mismo que poneis en otros post.
Cerrar, limpiar, asignar el sql, el parametro y finalmente abrir.

nose la verdad

gracias
Responder Con Cita
  #2  
Antiguo 20-02-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola anubis.

Código Delphi [-]
function tfagregausuario.verificarnick:byte;
begin
  
{ **  las líneas siguientes son innecesarias **
  ibdataset1.SelectSQL.clear;
  ibdataset1.selectSQL.Text:='select * from usuarios';
  ibdataset1.open;
}
 
  // quedaría:
  ibdataset1.Close;
  ibdataset1.selectSQL.Text := 'select * from usuarios where nick = :nick4';
  ibdataset1.ParamByName('nick4').value := lowercase(Trim(enick.Text)); //(*)
  ibdataset1.open;
end;
(*) La función Trim quitará espacios indeseados. Asegurate que los valores de la columna nick estén almacenados en minúsculas o no hallará coincidencias.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 20-02-2016
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias por contestar de nuevo .

si eso me queda claro, lo que no me cuentra es nick4 que esta en parambyname, dice que no existe el campo, puedo poner lo que sea que dice que no existe.

Los valores que comentas que son innecesarios los pongo para poder volver a asignar seleccionar todos los registros y poder realizar otro filtro.

Última edición por anubis fecha: 20-02-2016 a las 06:19:23.
Responder Con Cita
  #4  
Antiguo 20-02-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola anubis.
Cita:
Empezado por anubis Ver Mensaje
Gracias por contestar de nuevo .

si eso me queda claro, lo que no me cuentra es nick4 que esta en parambyname, dice que no existe el campo.
Según tu código inicial, el nombre del campo es nick y el nombre del parámetro es nick4 por lo que el código del mensaje #2,
Código Delphi [-]
  ibdataset1.Close;
  ibdataset1.selectSQL.Text := 'select * from usuarios where nick = :nick4';
  ibdataset1.ParamByName('nick4').value := lowercase(Trim(enick.Text)); //(*)
  ibdataset1.open;
no tendría que dar ese tipo de error...

¿ Cuál es "literalmente" el error que te muestra ? (copia/pega)

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 20-02-2016
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Cita:
Field "nick4" not found
A la hora ejecutar el programa, cuando vuelvo a poner otro usuario, ya me sale ese error.

Al quitar inicialmente las lineas que dices que no son necesarias, el programa me lo ejecuta normal de primera vez, me busca el usuario, al poner otro usuario y pasar por el mismo sitio, ya me salta el error.
Responder Con Cita
  #6  
Antiguo 20-02-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Suena como que hay residuos en la cadena, pero eso no debería pasar usando la propiedad Text ya que sobreescribe lo anterior.

¿ Estas usando el método Add de este modo ?
Código Delphi [-]
  ibdataset1.Close;
  ibdataset1.selectSQL.Add('select * from usuarios where nick = :nick4');

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 20-02-2016 a las 06:36:28. Razón: corrección
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
Problema con Parambyname Perenquen MySQL 9 19-09-2012 03:13:59
Problemas con el ParambyName giancarlorc SQL 1 23-10-2011 19:27:06
Sobre el uso de ParamByName salvica SQL 11 24-11-2008 18:28:50
ParamByName en ADO silviodp Tablas planas 5 12-01-2008 12:50:01
Problemas con ParamByName Memo ramonibk MS SQL Server 2 14-09-2004 13:15:26


La franja horaria es GMT +2. Ahora son las 05:04:12.


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