Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   DBCheckBox asociado a un campo Memo (https://www.clubdelphi.com/foros/showthread.php?t=14788)

gluglu 30-09-2004 16:23:47

DBCheckBox asociado a un campo Memo
 
Hola Amigos,

Desea marcar/desmarcar un campo DBCheckBox dependiendo de si un campo memo contenga/no contenga texto.

Que valor o condición podría poner en ValueChecked/Unchecked o bien de que otra manera podría hacerlo? :confused:

Gracias

Neftali [Germán.Estévez] 30-09-2004 17:17:01

Cita:

Empezado por gluglu
...DBCheckBox dependiendo de si un campo memo contenga/no contenga texto...

Para un CheckBox puedes asignarle:
Código Delphi [-]
  Check1.Checked := (Memo.Lines.Text = '');
  // o utilizar el Count
  Check1.Checked := (Memo.Lines.Count = 0);

Si vas a utilizar un DBCheckBox, debes asignar el valor al campo asociado no al control:

Código Delphi [-]
  DBCheckBox1.Field.AsBoolean := (Memo.Lines.Text = '');

y si el control de memo es un DBMemo, pues deberías usar el campo asociado y la propiedad Null para trabajar:

Código Delphi [-]
  DBCheckBox1.Field.AsBoolean := (DBMemo.Field.ISNull);

gluglu 30-09-2004 18:40:00

Gracias Neftalí,

Algo estoy haciendo mal !

Tengo dos tablas diferentes relacionadas con un código. Una que contiene datos generales y la segunda tabla que contiene únicamente el código y el campo BLOB.

Tengo en el Form dos DataSources.

DBMemo1 accede a través del DataSource2 al campo COMMENTS de la segunda tabla, que a su vez está relacionada con la Tabla 1 a través del N.Código.

DBMemo1 tiene como:
Código:

DataField := COMMENTS
DataSource := DataSource2

DBCheckBox1 tiene como:
Código:

DataField := COMMENTS
DataSource := DataSource1

Cuando se ejecuta:
Código:

procedure TMasterBuilding.FormShow(Sender: TObject);
begin
  DBCheckBox1.Field.AsBoolean := (DBMemo1.Field.ISNull);
end;

me dá el siguiente error :

Código:

Cannot Access field 'COMMENTS' as type Boolean

Neftali [Germán.Estévez] 01-10-2004 10:02:22

Cita:

Empezado por gluglu
...me dá el siguiente error :

Código:

Cannot Access field 'COMMENTS' as type Boolean

Parece lógico que el MEMO esté "ligado" al campo COMMENTS pero lo que no veo claro es que el CHECKBOX esté también "ligado" al campo COMMENTS; Lo normal es que el CheckBox esté "ligado" a un campo que en tu tabla esté definido como tipo Boolean;
De ahí el error que te devuelve Delphi; Te está diciendo que son incompatibles un DBCheckBox(que debería tener como DataField un campo Booleano) con el DataField que le has asignado (el campo COMMENT que seguramente será un Blob).


La franja horaria es GMT +2. Ahora son las 09:18:48.

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