PDA

Ver la Versión Completa : asegurarme que un dato es integer o fecha antes de guardarlo


Giniromero
15-11-2007, 11:36:04
Hola,

estoy haciendo un prodecimiento, en Delphi 6, con interbase 7.5, primero paso datos de una tabla access a IB. La tabla Access, aunque tiene definido el tipo de dato que tiene que aceptar en cada campo, algunas veces recibe datos incorrectos en determinados campos, (por ejemplo, caracteres "raros" en la fecha, o caracteres en un campo integer). El tema está en que al pasar estos datos a mi aplicacion de delphi, necesito que se asegure que las fechas son fechas, y sinó no las copie y pase al siguiente registro, y que los campos integer reciben integer, y sinó, que pase al siguiente registro.

¿Existe algún modo, del tipo, isInteger o algo así que pueda poner en un if para que me asegure que es un tipo de dato correcto para el campo que lo va a tomar?

Es que no tengo manera de asegurarme en access que esos caracteres no validos entren en esos campos, pues se exportan a dicha tabla de access desde un programa que yo no controlo, y que toma datos de formularios, que guarda en las tablas de esa BD Access, sin controlar que el dato sea correcto, (Aunque en principio siempre van a ser datos correctos). Por eso tengo que poner el control en la entrada a Delphi, para que luego al tratar los datos, o directamente al guardarlos en interbase no me de problemas.

Muchas gracias, de ante mano, por la ayuda prestada,



Virginia

Caro
15-11-2007, 14:22:56
Hola Virginia, si los datos los recuperas como cadenas, estas funciones te podrían servir para asegurarte si es de tipo fecha o de tipo entero.


var
fecha :TDateTime;
entero:Integer;
begin
if not TryStrToDate(Edit1.Text, fecha) then
showmessage('no se puede convertir a fecha');

if not TryStrToInt(Edit1.Text, entero) then
showmessage('no se puede convertir a entero');



Saluditos