Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-05-2010
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
Convertir String a Integer en consulta SQL

Buenos días a tod@s,

me estoy liando con algo que posiblemente sea sencillo, pero no acabo de dar con ello.

Estoy trabajando con PostgreSQL y quiero que un DBGrid muestre unos datos resultado de una consulta.

Para ello creo una query y en la sentencia SQL pongo:

Código PHP:
Select obras.cod_obra,obras.descripcion  from obras,clientes  where obras.cod_cliente 
Con esto funciona sin problemas y consigo que el DBGrid muestre los registros cuyo cod_cliente es 2

Sin embargo me interesa que en lugar de ser igual a 2 tenga en cuenta el valor de un DBedit, es decir algo parecido a:

Código PHP:
Select obras.cod_obra,obras.descripcion  from obras,clientes  where obras.cod_cliente '+DBEdit13.Text+' 
El problema es que DBEdit13 es de tipo string y me devuelve un error de incompatibilidad de tipos

Me interesa saber como puedo hacer para convertir en esa linea el string de Dbedit13 a Integer

He probado con la funcion StrtoInt pero lógicamente creo que no viene al caso.

¿Alguien podría echarme una mano?

Muchas Gracias
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
  #2  
Antiguo 25-05-2010
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
Supongo que un Cast te funcione en el SQL de tus componentes de conexión a la tabla.
Código SQL [-]
 cast(MiCampo as integer)

Un Saludo.
__________________
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 25-05-2010
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
También prueba según este ejemplo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
n:integer;
begin
n:=DbEdit2.Field.AsInteger;
ShowMessage(IntToStr(n));
end;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 25-05-2010
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
Muchas gracias por tu ayuda,

no acabo de saber poner en practica lo que me indicas.

Uso Zeos para la query y por muchas combinaciones que hago no consigo sustituir el núm. del cliente por DBEdit13.Text

El problema que veo es que devuelve un contenido tipo string y no acierto a convertirlo a integer.

¿Te importa decirme en mi ejemplo como lo tengo que escribir?

Código SQL [-]
CObras.SQL.Text:='Select obras.cod_obra,obras.descripcion from obras,clientes  where obras.cod_cliente = 3';


Gracias de nuevo
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
  #5  
Antiguo 25-05-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

Creo que debes ser más explícito en la exposición de tu duda. Debería ser indistinto si pones

Código Delphi [-]
CObras.SQL.Text:='Select obras.cod_obra,obras.descripcion from obras,clientes  where obras.cod_cliente = 3';

que si pones

Código Delphi [-]
CObras.SQL.Text:='Select obras.cod_obra,obras.descripcion from obras,clientes  where obras.cod_cliente = ' + DBEdit13.Text;

ya que ambas partes del operador + son strings. Si obtienes una incompatibilidad de tipos puede deberse a que el contenido del DBEdit no representa un número; ¿has verificado eso?

// Saludos
Responder Con Cita
  #6  
Antiguo 25-05-2010
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
Lo siento Román, esto pone nervioso

Con el código que me has puesto ya funciona perfectamente. Mi fallo estaba en que colocaba el DBEdit dentro de los ' ' , al ponerlo como en tu ejemplo ya lo reconoce sin problema.

Muchas Gracias, mil disculpas por el tiempo que os pueda haber hecho perder

Un abrazo
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
  #7  
Antiguo 25-05-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Je, je. Ya veo cuál era el error. No te precupes, pasa en las mejores familias Lo importantes es que entiendas por qué con esas comillas extras no funciona.

// 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
Determinar si un String se puede convertir a Integer David OOP 10 31-10-2008 21:27:41
Convertir un String a Integer Rafe Varios 2 12-08-2005 17:43:38
Como Convertir un dato Integer ó Float a String en FireBird???? AGAG4 Firebird e Interbase 8 04-12-2004 02:59:47
Convertir una Variable de String a Integer y Viceversa. aleidania Varios 1 13-07-2003 16:35:37
Convertir campo tipo number de oracle a integer o string Sóstrato OOP 1 13-06-2003 09:18:55


La franja horaria es GMT +2. Ahora son las 21:01:58.


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