Конференция "Начинающим" » Поле не принимает значения
 
  • lesstab © (05.09.11 13:05) [0]

    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));
  • lesstab © (05.09.11 16:44) [4]

    > Медвежонок Пятачок ©   (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.
  • lesstab © (06.09.11 07:22) [6]
       
    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;



    Все равно результат тот.
  • lesstab © (06.09.11 07:26) [7]
    Вот объявление ДатаМодуля:

    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 точно не пропустил?
  • lesstab © (08.09.11 14:39) [9]

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


    Нет, несомненно.
    Так как, нет времени, сейчас обхожу это место в программе. Куда же оно денется. ))
  • Ega23 © (08.09.11 14:42) [10]

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


    Тогда было бы "Cannot perform this operation on a closed DataSet"
  • lesstab © (14.09.11 13:38) [11]
    Вот это работает:

    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
 
Конференция "Начинающим" » Поле не принимает значения
Есть новые Нет новых   [134431   +13][b:0][p:0.003]