Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   mssql (https://www.clubdelphi.com/foros/showthread.php?t=14310)

scooterjgm 16-09-2004 10:48:30

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

__hector 16-09-2004 17:48:22

codigo... muestranos algo de codigo ;)

scooterjgm 17-09-2004 10:04:06

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.

guillotmarc 17-09-2004 10:38:21

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.

scooterjgm 17-09-2004 11:13:11

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.


La franja horaria es GMT +2. Ahora son las 00:10:51.

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