Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поле не принимает значения


lesstab ©   (2011-09-05 13:05:00) 


datamodul.qryTeacher.FieldByName('ClrKod').Value := datamodul.qryColor.FieldByName('Kod').Value;
datamodul.qryTeacher.Post;


Правая часть оператора присваивания имеет конкретное значение, но левая часть не принимает никакого значения, всегда остается Null. В чем может быть причина.

П.С. Ошибки не выдается. Сервер - Firebird 2.5. Соединение ADOConnection. Набор данных ADOQuery.


Anatoly Podgoretsky   (2011-09-14 15:14:00) [1]

> lesstab  (14.09.2011 13:38:11)  [11]

Разница в Value


lesstab   (2011-09-14 13:38:00) [2]

Вот это работает:

datamodul.qryTeacher.FieldByName('ClrKod').AsInteger := datamodul.qryColor.FieldByName('Kod').AsInteger;


А это нет:

datamodul.qryTeacher.FieldByName('ClrKod').Value := datamodul.qryColor.FieldByName('Kod').Value;

Вчем же разница?


Ega23   (2011-09-08 14:42:00) [3]


> А Edit/Append/Insert точно не пропустил?


Тогда было бы "Cannot perform this operation on a closed DataSet"


lesstab   (2011-09-08 14:39:00) [4]


> А Edit/Append/Insert точно не пропустил?


Нет, несомненно.
Так как, нет времени, сейчас обхожу это место в программе. Куда же оно денется. ))


Очень Злой   (2011-09-07 11:25:00) [5]


>    
> 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 точно не пропустил?


lesstab   (2011-09-06 07:26:00) [6]

Вот объявление ДатаМодуля:

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


lesstab   (2011-09-06 07:22:00) [7]

   
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;


Все равно результат тот.


Медвежонок Пятачок   (2011-09-05 17:20:00) [8]

У меня не AsString.
У меня Value.


lesstab   (2011-09-05 16:44:00) [9]


> Медвежонок Пятачок ©   (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


Медвежонок Пятачок   (2011-09-05 13:14:00) [10]

а еще лучше так:

ShowMessage('полю присваивается значение ' + VarToStr(datamodul.qryColor.FieldByName('Kod').Value) + #13#10'И поле приняло значение ' + VarToStr(datamodul.qryTeacher.FieldByName('ClrKod').Value));


Медвежонок Пятачок   (2011-09-05 13:08:00) [11]

datamodul.qryTeacher.FieldByName('ClrKod').Value := datamodul.qryColor.FieldByName('Kod').Value;

ShowMessage('Поле таки принимает значение:  'VarToStr(datamodul.qryTeacher.FieldByName('ClrKod').Value));


Медвежонок Пятачок   (2011-09-05 13:07:00) [12]

скорее всего это оптический обман


Наверх

Титульная страница Поиск, карта сайта Написать письмо