Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Error en type conversion (https://www.clubdelphi.com/foros/showthread.php?t=60796)

che 14-10-2008 16:48:28

Error en type conversion
 
Saludos Delphines, tengo un problema con mi codigo, es para buscar registros de un tabla, si funciona cuando estan todos los campos, pero si falta un campo me bota error en type de conversion:
****MENSAJE*****
Project Bitacora.exe raised exception class EvariantError with message 'Invalid variant type conversion'.
Process stopped. Use Step or Run to continue


Este es mi codigo:
procedure TForm3.Edit3KeyPress(Sender: TObject; var Key: Char);
var
k,c:integer;
m:string;
begin
if key=#13 then
begin
table1.Refresh;
k:=0;
table1.Last;
while not table1.Bof do
begin
if edit3.Text = table1['Cod_modelo_impre'] then
begin
k:=1;
edit1.Text := table1['Cod_modelo_impre'];
edit4.Text := table1['Cod_marca_impre'];
edit2.Text := table1['Modelo_impre'];
edit5.Text := table1['serie_impre'];
break;
end
else
table1.Prior;
end;

El sistema es Delphi 6 con access 2007, cuando usa la base de datos Paradox no me salia este error. Gracias de antemano por cualquier ayuda.

roman 14-10-2008 18:15:51

Si falta un campo, supongo entonces que se trata de un valor NULL. Al asignarlo a Edit.Text, se intenta realiza la conversión de NULL a String, pero, normalmente esto no es posible. Puedes remediarlo poniendo en false la variable global NullStrictConvert, para que el valor NULL se convierta en una cadena vacía. O bien, puedes usar table1.FieldByName(...).AsString para evitar el error.

// Saludos

che 14-10-2008 20:47:08

hola roman, segui tu respuesta pero no logro ubicar el NullStrictConvert, nose donde ponerlo, enq ue lugar ¿?, es que soy novato. gracias.

roman 14-10-2008 20:53:29

En cualquier lugar que se ejecute antes de ese código. Puede ser, por ejemplo, en el evento OnCreate del formulario.

De todas formas, intenta lo otro que te dije. Siempre es más eficiente acceder a los campos con FieldByName que con un variant como lo es Table[...]

// Saludos

che 14-10-2008 22:52:14

Gracias
 
hola Roman, ya me salio siempre use el fieldbyname, eres un tigre, saludos por allá, chauuuuu


La franja horaria es GMT +2. Ahora son las 11:11:13.

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