Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-09-2004
scooterjgm scooterjgm is offline
Miembro
 
Registrado: ago 2004
Posts: 115
Poder: 20
scooterjgm Va por buen camino
mssql

uso mssql server en una aplicacion delphi y el grupo de componentes dbexpress para conectar con ella. en el test me valida la conexion...

pues bien, cuando ejecuto la aplicacion, realiza las consultas correctamente pero no almacena los valores en las variables por lo q me da errores. alguien sabe a q se debe esto??

me carga correctamente el resultado de la consulta en los grids pero al no recogerlos en las variables cuando hago otra consulta pasandole el valor de esa variable me da error.

alguien puede ayudarme??

muchas gracias
Responder Con Cita
  #2  
Antiguo 16-09-2004
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
codigo... muestranos algo de codigo
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #3  
Antiguo 17-09-2004
scooterjgm scooterjgm is offline
Miembro
 
Registrado: ago 2004
Posts: 115
Poder: 20
scooterjgm Va por buen camino
ejecuto la siguiente instruccion y me da un error:

ASSERT(FechaOperacion <> 0);

Hago un ShowMessage de la variable y unas veces me sale bien y otras me sale 31/12/2004, es decir la fecha q tiene q devolver la consulta SQL. Si ejecuto la misma consulta en el MSSQL Server me devuelve el siguiente valor:

2004-12-31 00:00:00.000

El campo de BD es datetime y lo almaceno en una variable TDateTime

FFechaFin := FSqlQuery.fieldbyname('ID_FECHA_FIN').asdatetime;

Esto me pasa con este dato pero tb me pasa con otros.
Responder Con Cita
  #4  
Antiguo 17-09-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola.

Deberias poner también como abres el Query, puesto que allí parece estar el problema.

NOTA: ¿ Como conectas un SQLQuery a una DbGrid ?, No puede hacerse.

Probablemente utilizes un ClientDataset para enlazarlo a la Grid. Entonces la fecha también deberias consultarla en el ClientDataset y no en el SQLQuery. (Cuando un SQLQuery proporciona datos a un ClientDataset, se cierra automaticamente al final).

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #5  
Antiguo 17-09-2004
scooterjgm scooterjgm is offline
Miembro
 
Registrado: ago 2004
Posts: 115
Poder: 20
scooterjgm Va por buen camino
Esta en un componente que se llama Arbol. esta todo declarado y accedo a este valor asi: Arbol.FFechaInicio que se lo paso a la variable asi:
FechaIni:TDateTime;
FechaIni:= Arbol.FFechaInicio;

Durante toda la aplicación uso este dato. Por algún motivo no lo recoje bien y me sale esta fecha en su lugar: 30/12/1899


La consulta del componente la hago asi:

FSqlQuery.Close;
FSqlQuery.SQL.clear;
FSqlQuery.SQLConnection := FSqlConnection;
S:=format('Select ID_FECHA_INI,ID_FECHA_FIN from CNT%s where ID_ISON =''%s'' AND ID_COD_EMP =''%s'' and ID_COD_CONT=''%s''',[FISON+FEMP,FISON,FEMP,FCONT]);
FSqlQuery.SQL.Add(S);
FSqlQuery.Open;
FFechaInicio:= FSqlQuery.fieldbyname('ID_FECHA_INI').asdatetime;
FFechaFin := FSqlQuery.fieldbyname('ID_FECHA_FIN').asdatetime;

Ejecuto este código en el analizador de consultas de SQL Server y me dá los resultados correctos con este formato: 2004-12-31 00:00:00.000

El codigo está en un componente que es el que realiza la consulta. Almacena el valor y luego con la variable recojo ese valor.

Lo de los grids es por otro lado. En la aplicación tengo Grids que si recogen los datos del SQL Server.

No entiendo pq recoje los datos por una parte y luego por la otra no los almacena

¿puede ser del formato de la base de datos?

Antes la tenía en FireBird y funcionaba perfectamente en un campo de tipo DATE, ahora la tengo en un campo de tipo DATETIME. No he cambiado ningún componente ya que con los dbExpress de Delphi7 también puedo acceder a bases de datos MSSQL.

Gracias por todo.
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


La franja horaria es GMT +2. Ahora son las 00:31:45.


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