Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Tipo de datos no coincide (https://www.clubdelphi.com/foros/showthread.php?t=31440)

Genner 08-05-2006 16:29:02

Tipo de datos no coincide
 
tengo un problema estoy haciendo una aplicacion tengo una tabla que tiene un tipo de dato Número. Utilizo Delphi 7, ADO y Acces cuando quiero hacer una consulta y quiero verificar el campo de la tabla me marca error.
TIPO DE DATOS NO COINCIDE


Código SQL [-]
  Close;
  Sql.Clear;
  Sql.Add('Select clave_promo from parrilla where clave_radio="'+radios.Text+'" AND clave_promo="'+grid.Cells[0,fila_actual]+'" AND fecha<#'+fecha_buscar+'#');
         Open;

lo q esta en rojo es donde marca error clave_promo es tipo Numero en acces y elvalor con el q lo quiero comparar lo saco de un TstringGrid. muchas gracias por su ayuda

vtdeleon 08-05-2006 16:42:34

Saludos

Intenta esto con parametros:
Código Delphi [-]
With Dataset do Begin
  Close;
  Sql.Text:='Select clave_promo from parrilla '+
                'where clave_radio=:radio AND '+
                'clave_promo=:grid AND '+
                'fecha<:fecha';
  ParamByName('radio').AsString:=Radios.Text;
  ParamByName('grid').AsString:=grid.Cells[0,fila_actual]
  ParamByName('fecha').AsDatetime:=fecha_buscar;
  Open;
end;

Genner 08-05-2006 16:54:12

hay alguna otra manera? me dijeron q usando un cast pero lo intente y me marca error pero ahora me marca el siguiente error:
Undeclared identifier 'Cast'
tengo el cast asi
Código Delphi [-]
var 
 indice:integer;
 cadena:string;
 begin
indice:=0;
 cadena:=Cast(indice  as string);

waltergomez 08-05-2006 17:00:06

si no queres usar parametros como ya te sugirieron,

me parece que tenes comillas de mas, si clave_promo es numeric

esto

clave_promo="'+grid.Cells[0,fila_actual]+'"
te queda como calve_promo='123' que es una comparacion de cadena

deberia ser asi

clave_promo='+grid.Cells[0,fila_actual]+'
te queda como calve_promo=123

si queres podes usar la funcion quotedstr

'Select clave_promo from parrilla where clave_radio='+quotedstr(radios.Text)+' AND clave_promo='+grid.Cells[0,fila_actual]+' AND fecha<#'+fecha_buscar+'#');


Saludos,

Genner 08-05-2006 17:08:37

Muchas gracias por sus respuestas lo voy a checar y les comento el resultado

Genner 08-05-2006 17:14:40

muchas gracias funciono de las dos maneras
:)


La franja horaria es GMT +2. Ahora son las 23:05:13.

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