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 02-02-2006
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Datamodule, SQL, DELPHI y un error tope chungo

Tengo este proceso
Código Delphi [-]
procedure TForm1.MachinesCharactValue;
begin
sSqlstatement:='SELECT value_type '+
               'FROM technical_items '+
               'WHERE visible=''Y'' and tech_id='+sTechId;
IBSQL_access(sSQLstatement);
if (DataModule2.IBSQL1.FieldByName('value_type').AsString)='INT' then
      sSqlstatement := 'SELECT MIN(cast(t.svalue as float)) as Minimo'+
                       ', MAX(cast(t.svalue as float)) as Maximo'
else if (DataModule2.IBSQL1.FieldByName('value_type').AsString)='VAR' then
sSqlstatement := 'SELECT distinct t.svalue as Intervalo'
else
ShowMessage('Fallo la construccion del sSQL');

sSqlstatement:=sSqlstatement+' FROM technical_inf t'+
                             ' WHERE t.id_part_type=0'+
                             ' AND t.tech_id='+sTechId;
IBDataSet_access(sSQLstatement);

if (DataModule2.IBSQL1.FieldByName('value_type').AsString)='VAR' then
    dbgSuppliers.Columns[0].FieldName:='Intervalo'//sIntervalo
else
   begin
    dbgSuppliers.Columns[0].FieldName:='Minimo';//sMinimo
    dbgSuppliers.Columns[1].FieldName:='Maximo';//sMaximo
   end;
sExecStatus:='MachinesCharactValue';
visible_screen;
dbgSuppliers.SetFocus;
end;

Cuya función es realizar una consulta concreta en función de unas condiciones. En teoria es muy sencillo lo que pretendo.
Pero cuando lo ejecuto me da un error "conversion error from string "SAE3""
Ni puñetera idea de que va eso, he googleado un poco (y ahora seguiré), pero no acabo de saber que me quiere indicar, salvo que hay un error al pasarle el string de la consulta.

Llevo un rato atascado, necesito que alguién me guie a la luz, si es posible.

Un abrazo confuso.

Papulo.
Responder Con Cita
  #2  
Antiguo 02-02-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Por qué no introduces antes de ejecutar la consulta un:
Código Delphi [-]
ShowMessage(sSqlstatement)

para ver en donde contiene el valor que te da error y así poderlo subsanar.

Un Saluo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 02-02-2006
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
Tal vez no vayan por ahí los tiros pero según veo en tu código estás haciendo un moldeado de tipo en la siguiente sentencia:
Código Delphi [-]
...
if (DataModule2.IBSQL1.FieldByName('value_type').AsString)='INT' then
      sSqlstatement := 'SELECT MIN(cast(t.svalue as float)) as Minimo'+
                       ', MAX(cast(t.svalue as float)) as Maximo'
...

¿Has comprobado que, efectívamente, t.svalue contiene un valor numérico válido?

Saludos!
Responder Con Cita
  #4  
Antiguo 03-02-2006
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Cita:
Empezado por jmariano
Tal vez no vayan por ahí los tiros pero según veo en tu código estás haciendo un moldeado de tipo en la siguiente sentencia:
Código Delphi [-]
...
if (DataModule2.IBSQL1.FieldByName('value_type').AsString)='INT' then
      sSqlstatement := 'SELECT MIN(cast(t.svalue as float)) as Minimo'+
                       ', MAX(cast(t.svalue as float)) as Maximo'
...
¿Has comprobado que, efectívamente, t.svalue contiene un valor numérico válido?

Saludos!
Gracias por la respuesta, lo averigüe justo despues de poner este post. El error estaba en la identificación de 'INT' y 'VAR', según cual fuera, se lanzaba una consulta u otra. Una solo contenia enteros y la otra tenia caracteres, pero al identificarlas al reves, me daba error.

Una vez mas, gracias por la ayuda.

Un saludo sincero.

Papulo.
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
Delphi y SQL server 2000 Juanito-Kun MS SQL Server 7 06-03-2008 09:51:12
Delphi, Acces, Fechas y SQL cepriego Conexión con bases de datos 8 27-07-2005 00:58:08
Ayuda: Como cerear un instalador para delphi 7 y bd en sql jose_2057111 Conexión con bases de datos 1 07-06-2005 09:38:23
Consultas SQL en Delphi DaRkBoY Oracle 4 18-06-2003 15:26:43
un Store Procedure de Sql 2000 y Delphi 5.0 Sandochan Conexión con bases de datos 1 23-05-2003 00:20:26


La franja horaria es GMT +2. Ahora son las 09:39:27.


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