-
datamodul.qryTeacher.FieldByName('ClrKod').Value := datamodul.qryColor.FieldByName('Kod').Value;
datamodul.qryTeacher.Post;
Правая часть оператора присваивания имеет конкретное значение, но левая часть не принимает никакого значения, всегда остается Null. В чем может быть причина.
П.С. Ошибки не выдается. Сервер - Firebird 2.5. Соединение ADOConnection. Набор данных ADOQuery. -
Медвежонок Пятачок © (05.09.11 13:07) [1]скорее всего это оптический обман
-
Медвежонок Пятачок © (05.09.11 13:08) [2]datamodul.qryTeacher.FieldByName('ClrKod').Value := datamodul.qryColor.FieldByName('Kod').Value;
ShowMessage('Поле таки принимает значение: 'VarToStr(datamodul.qryTeacher.FieldByName('ClrKod').Value)); -
Медвежонок Пятачок © (05.09.11 13:14) [3]а еще лучше так:
ShowMessage('полю присваивается значение ' + VarToStr(datamodul.qryColor.FieldByName('Kod').Value) + #13#10'И поле приняло значение ' + VarToStr(datamodul.qryTeacher.FieldByName('ClrKod').Value)); -
> Медвежонок Пятачок © (05.09.11 13:14) [3]
>
> а еще лучше так:
>
> ShowMessage('полю присваивается значение ' + VarToStr(datamodul.
> qryColor.FieldByName('Kod').Value) + #13#10'И поле приняло
> значение ' + VarToStr(datamodul.qryTeacher.FieldByName('ClrKod').
> Value));
if formtechedit.ModalResult = mrOK then
begin
datamodul.qryTeacher.FieldByName('ClrKod').Value := datamodul.qryColor.FieldByName('Kod').Value;
ShowMessage('ïîëþ ïðèñâàèâàåòñÿ çíà÷åíèå ' + datamodul.qryColor.FieldByName('Kod').AsString + #13#10+'È ïîëå ïðèíÿëî çíà÷åíèå ' + datamodul.qryTeacher.FieldByName('ClrKod').AsString);
datamodul.qryTeacher.Post;
end;
Вот результат:
http://img7.imageshack.us/img7/8683/append.th.png -
Медвежонок Пятачок © (05.09.11 17:20) [5]У меня не AsString.
У меня Value. -
if formtechedit.ModalResult = mrOK then
begin
datamodul.qryTeacher.FieldByName('ClrKod').Value := datamodul.qryColor.FieldByName('Kod').Value;
ShowMessage('ïîëþ ïðèñâàèâàåòñÿ çíà÷åíèå ' + VarToStr(datamodul.qryColor.FieldByName('Kod').Value) + #13#10+'È ïîëå ïðèíÿëî çíà÷åíèå ' + VarToStr(datamodul.qryTeacher.FieldByName('ClrKod').Value));
datamodul.qryTeacher.Post;
end;
Все равно результат тот. -
Вот объявление ДатаМодуля:
type
Tdatamodul = class(TDataModule)
connectionLesstab: TADOConnection;
qryCurriculum: TADOQuery;
qrySubject: TADOQuery;
dsrcCurriculum: TDataSource;
dsrcSubject: TDataSource;
qryColor: TADOQuery;
dsrcColor: TDataSource;
qryRoom: TADOQuery;
dsrcRoom: TDataSource;
qryTeacher: TADOQuery;
dsrcTeacher: TDataSource;
qryTeacherKOD: TLargeintField;
qryTeacherSTATE: TStringField;
qryTeacherNAME: TStringField;
qryTeacherROOM: TLargeintField;
qryTeacherCLRKOD: TLargeintField;
qryColorKOD: TLargeintField;
qryColorHEX: TStringField;
qryColorSTATE: TStringField;
procedure dsrcCurriculumDataChange(Sender: TObject; Field: TField);
procedure qrySubjectBeforePost(DataSet: TDataSet);
procedure qrySubjectAfterPost(DataSet: TDataSet);
procedure qryTeacherBeforePost(DataSet: TDataSet);
private -
Очень Злой (07.09.11 11:25) [8]
>
> if formtechedit.ModalResult = mrOK then
> begin
> datamodul.qryTeacher.FieldByName('ClrKod').Value
> := datamodul.qryColor.FieldByName('Kod').Value;
> ShowMessage('ïîëþ ïðèñâàèâàåòñÿ çíà÷åíèå ' + VarToStr(datamodul.
> qryColor.FieldByName('Kod').Value) + #13#10+'È ïîëå ïðèíÿëî
> çíà÷åíèå ' + VarToStr(datamodul.qryTeacher.FieldByName('ClrKod').
> Value));
> datamodul.qryTeacher.Post;
> end;
>
>
> Все равно результат тот.
А Edit/Append/Insert точно не пропустил? -
> А Edit/Append/Insert точно не пропустил?
Нет, несомненно.
Так как, нет времени, сейчас обхожу это место в программе. Куда же оно денется. )) -
> А Edit/Append/Insert точно не пропустил?
Тогда было бы "Cannot perform this operation on a closed DataSet" -
Вот это работает:
datamodul.qryTeacher.FieldByName('ClrKod').AsInteger := datamodul.qryColor.FieldByName('Kod').AsInteger;
А это нет:
datamodul.qryTeacher.FieldByName('ClrKod').Value := datamodul.qryColor.FieldByName('Kod').Value;
Вчем же разница? -
Anatoly Podgoretsky © (14.09.11 15:14) [12]> lesstab (14.09.2011 13:38:11) [11]
Разница в Value