Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Error al ejecutar programa en Delphi con base de datos SQL SERVER 2000 (https://www.clubdelphi.com/foros/showthread.php?t=66768)

sizne 11-03-2010 03:32:46

Error al ejecutar programa en Delphi con base de datos SQL SERVER 2000
 
Hola, por favor podrias ayudarme con este...
Te explico, estoy realizando un pequeño sistema en Delphi con Base de datos en SQL Server. Donde interactuaran solo dos usuarios. Tengo diseñada las tablas respectivas para los usuarios del sistema: Osea su CodigoUsuario, NombreUsuario, CargoUsuario o NivelUsuario, ContraseñaUsuario, y en otra tabla tengo los campos CodigoBitacora, CondigoUsuario, FechaIngreso, FechaSalida, HoraIngreso, Hora Salida. Estan relacionadas ambas tablas por medio de CodigoUsuario.

El problema es, una vez ya realizado la programacion cuando esta ejecutandose el programa, aparece lo siguiente:
Donte Tbitacora es la tabla donde estan los campos Fechas y horas de ingreso y salida.

Project Pbecarios.exe raised exception class EDatabaseError with message 'Tbitacora: Dataset not in edit or insert mode'.Process stopped. Use Step or Run to continue.

Cuando hago click en OK, aparece lo siguiente:

Tbitacora: Dataset not in edit or insert mode.

No le entiendo al error, donde podria realizar una modificacion? o que es lo que me falta? Cuando ejecuto el programa no me muestra ningun error. Solo al momento de querer entrar al FORMULARIO BITACORA, para ver los usuarios que ingresaron al sistema y sus fechas, con sus respectivos datos: Nombres, codigoUsuario, fecha y horarios de ingreso y salida.

Anticipadamente gracias!

BrunoBsso 11-03-2010 03:35:42

Ese error te indica que vos estás tratando de modificar algún dato de la tabla Tbitacora, pero no la pusiste en edit (para editar un dato existente) ni en insert (para agregar un dato nuevo).
Dependiendo de lo que intentes hacer, y de donde te marque el error (en vez de presionar OK, presiona Break), deberías poner una sentencia de TBitacora.Edit; para editar un dato existente o TBitacora.Insert; para agregar uno nuevo.
Saludos!

sizne 11-03-2010 07:23:28

Error
 
Bueno antes que nada gracias por tu ayuda.
Otra más por favor, ahora tengo otro percance.
Explico:
Como bien ya habia comentado estoy usando dos tablas TablaUsuario y TablaBitacora. Pues en SQL SERVER los relacioné en VISTAS las dos tablas y les puse el name de UsuarioBitacora, se relacionaron por medio de CodigoUsuario. Cabe mencionar que todos los campos excepto las llaves estan activados campo NULL o vacio.

Ahora me aparece el siguiente error:

Project Pbecarios.exe raised exception class EvarianTypeCastError with message 'Could not convert variant of type(null) into type (Double)'. Process stopped. use Setp or Run to continue.

Luego hice click en OK.

Could not convert variant of type (Null) into type (Double).

Luego aceptar.
Me fije en SQL y todos los campos lo puse a Null para que no tenga problemas.

Por otra parte, después de ingresar al formulario de la Bitacora, solo me muestra dos registros en la DBGrid, cuando habia ingresado mas de dos veces con los dos usuarios mas el usuario programador. Deberia registrarse todas las veces que ingresa un mismo usuario, y sus salidas pues no me registra, solo aparece NULL.

En el ingreso me aparece 30/12/1899 02:36:24 a.m. cuando solo deberia aparecerme la hra y no asi esa fecha. Cuando en EditMask ya les di el formato de solo TIME y el otro DATE, y sus respectiva visualizacion de horas y fecha completa.

Después de ver solo dos entradas en el Formulario Bitacora, me aparece el siguiente mensaje:

General SQL error
[Microsoft][ODBC SQL Server Driver][SQL Server]La vista o funcion 'UsuarioBitacora' no es actualizable por que la modificacion afecta a multibles tablas de base.

Espero haber sido muy clara, cual podria ser el error que estoy cometiendo?

Gracias!

look 11-03-2010 15:50:19

Cita:

Empezado por sizne (Mensaje 356529)
Bueno antes que nada gracias por tu ayuda.
Otra más por favor, ahora tengo otro percance.
Explico:
Como bien ya habia comentado estoy usando dos tablas TablaUsuario y TablaBitacora. Pues en SQL SERVER los relacioné en VISTAS las dos tablas y les puse el name de UsuarioBitacora, se relacionaron por medio de CodigoUsuario. Cabe mencionar que todos los campos excepto las llaves estan activados campo NULL o vacio.

Ahora me aparece el siguiente error:

Project Pbecarios.exe raised exception class EvarianTypeCastError with message 'Could not convert variant of type(null) into type (Double)'. Process stopped. use Setp or Run to continue.

Luego hice click en OK.

Could not convert variant of type (Null) into type (Double).

Luego aceptar.
Me fije en SQL y todos los campos lo puse a Null para que no tenga problemas.

Por otra parte, después de ingresar al formulario de la Bitacora, solo me muestra dos registros en la DBGrid, cuando habia ingresado mas de dos veces con los dos usuarios mas el usuario programador. Deberia registrarse todas las veces que ingresa un mismo usuario, y sus salidas pues no me registra, solo aparece NULL.

En el ingreso me aparece 30/12/1899 02:36:24 a.m. cuando solo deberia aparecerme la hra y no asi esa fecha. Cuando en EditMask ya les di el formato de solo TIME y el otro DATE, y sus respectiva visualizacion de horas y fecha completa.

Después de ver solo dos entradas en el Formulario Bitacora, me aparece el siguiente mensaje:

General SQL error
[Microsoft][ODBC SQL Server Driver][SQL Server]La vista o funcion 'UsuarioBitacora' no es actualizable por que la modificacion afecta a multibles tablas de base.

Espero haber sido muy clara, cual podria ser el error que estoy cometiendo?

Gracias!

amigo yo te recomendaria que utilizaras transacciones.
seria mejor que utilizaras consultas(Querys) y no Ttables

para lo del error Could not convert variant of type (Null) into type (Double). , se puede solucionar con un fieldbyname.("Xcampo").asFloat
todo depende de como guardes el la tabla, al utilizar asX en donde x es el tipo de dato ya sea string o integer , te aseguras de que no devuelva un null , de esta manera podras evitar ese error.


La franja horaria es GMT +2. Ahora son las 01:09:34.

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