Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-04-2018
marcocd marcocd is offline
Registrado
 
Registrado: abr 2015
Posts: 4
Poder: 0
marcocd Va por buen camino
Función convert() y substring() dentro de un ADOQuery

buenas tardes. el problema que tengo es con el componente ADOQuery en delphi.
necesito crear una consulta sql utilizando el componente adoquery, pero al compilar mi programa me marca error en la función convert() y en la funcion substring(), la consulta es la siguiente:

SELECT 'S00'+CONVERT(CHAR,CONVERT(INT,SUBSTRING([Clave_Libro],2,6))-2) AS [Clave del Libro]
FROM TABLA

el campo [Clave_Libro] esta definido en la tabla como varchar de 6, lo que deseo hacer es cambiar el valor de la [Clave_Libro] a menos 2. por ejemplo:

si en la tabla en el campo [Clave_Libro] tengo el valor S00425, el resultado de mi consulta quiero que se visualice S00423, esta operacion quiero que la haga para todos los datos de este campo.

si esta consulta la ejecuto directamente en sql server, meda correctamente los resultados que deseo, pero al poner la consulta sql dentro de un componente adoquery en delphi me marca error al compila mi aplicación.

espero que me puedan ayudar a resolver este error, o como lo aria para obtener estos resultados.
gracias, espero que haya una solución a mi problema, me urge.
Responder Con Cita
  #2  
Antiguo 27-04-2018
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Y el error de compilación es ???. y en que línea del código fuente???
Responder Con Cita
  #3  
Antiguo 27-04-2018
marcocd marcocd is offline
Registrado
 
Registrado: abr 2015
Posts: 4
Poder: 0
marcocd Va por buen camino
el error se origina cuando compilo mi aplicación, con el siguiente error: la función convert no esta definida en la expresión, esta funcion la pongo en una consulta sql, utilizando el componente adoquery en delphi
Responder Con Cita
  #4  
Antiguo 27-04-2018
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.

Aunque por la función CONVERT pareciera que se trata de MS-SQL Server, ¿ Podrías confirmar que DBMS estas usando ?

Por favor no utilices el foro Trucos para publicar tus consultas, este está para presentar soluciones novedosas o interesantes. Si no estas seguro donde ubicarlo usa siempre el foro Varios, ya lo moví a este.

Saludos y gracias por tu colaboración
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 27-04-2018
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Cita:
Empezado por marcocd Ver Mensaje
error: la función convert no esta definida en la expresión, esta funcion la pongo en una consulta sql, utilizando el componente adoquery en delphi
Es muy extraño. Ese mensaje de error lo arroja MSACCESS y solo cuando se intenta ejecutar la consulta, no en tiempo de compilación. Entiendo, por lo que comentas, que tu base de datos es SQL SERVER, por tanto sugiero que verifiques la cadena de conexión a la base de datos; quizás estás apuntando a MSACCESS en lugar de SQL SERVER.

De otra parte sería bueno que nos mostrarás algo de tu código y así no jugamos al adivino.
Responder Con Cita
  #6  
Antiguo 28-04-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Además de la recomendaciones aportadas por los compañeros, no olvides tampoco poner el código fuente siempre entre sus etiquetas, ejemplo:



Gracias
Responder Con Cita
  #7  
Antiguo 28-04-2018
marcocd marcocd is offline
Registrado
 
Registrado: abr 2015
Posts: 4
Poder: 0
marcocd Va por buen camino
funcion convert() y substring() dentro de un adoquery

una disculpa, me falto aclarar que la consulta la estoy efectuando sobro los datos de un archivo de excel, es decir, utilizo el componente adoquery para conectarme con el archivo de excel y utilizo el siguiente codigo para conectarme con el archivo :

'Provider=Microsoft.ACE.OLEDB.12.0;' +
'Data Source='+archivo+';' +
'Extended Properties="Excel 12.0"';

y despues ya ya escribo la consulta utilizado el componente adoquery
Responder Con Cita
  #8  
Antiguo 28-04-2018
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Cita:
Empezado por marcocd Ver Mensaje
una disculpa, me falto aclarar que la consulta la estoy efectuando sobro los datos de un archivo de excel, es decir, utilizo el componente adoquery para conectarme con el archivo de excel y utilizo el siguiente codigo para conectarme con el archivo :

'Provider=Microsoft.ACE.OLEDB.12.0;' +
'Data Source='+archivo+';' +
'Extended Properties="Excel 12.0"';

y despues ya ya escribo la consulta utilizado el componente adoquery
Efectivamente, esa es una conexión al motor de base de datos "Microsoft ACE" (reemplazo del motor JET), que permite manipular bases de datos de escritorio tales como ACCESS y archivos de formato tabular como Excel. En este motor, que yo sepa, no están incorporadas funciones como Convert y SubString. Una lista de las funciones soportadas por el motor ACE pueden ser consultadas aquí.

Por el contrario SQL SERVER si incorpora las funciones Convert y SubString y por eso te funciona correctamente la consulta cuando la ejecutas directamente en SQL SERVER.
Responder Con Cita
  #9  
Antiguo 30-04-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por marcocd Ver Mensaje

Código SQL [-]
SELECT  'S00'+CONVERT(CHAR,CONVERT(INT,SUBSTRING([Clave_Libro],2,6))-2) AS [Clave del Libro]
FROM TABLA
¿Puedes poner el código exacto que estás utilizando en Delphi?
Que no sea que las comillas estén mal y te esté dando un error referente a Delphi y no a la Base de Datos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Funcion dentro de una DLL Fita Varios 2 15-06-2013 19:43:02
Ayuda con Funcion dentro de DLL n03l Varios 3 29-12-2011 20:09:37
Problema al remplazar una substring dentro de una string gulder Varios 2 24-11-2008 19:51:24
error de funcion dentro de un stringlist... Greco Varios 6 03-09-2008 08:57:08
llamada a una funcion dentro de una dll mauqu Varios 4 16-10-2007 17:47:57


La franja horaria es GMT +2. Ahora son las 00:50:17.


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