Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Insert в лругую таблицу, не передается значение ячейки 
:(
    Опции темы
Bugmaker
Дата 23.8.2009, 04:33 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 27.6.2008

Репутация: нет
Всего: нет



Ситауация следующая:
По нажатию кнопки данные из одной таблицы должны добавиться в конец другой.
Все добавляется нормально за исключением одного поля тип данных которого  - логический.
бд ms access

вот код из билдера:
Код

void __fastcall TOrderAddForm::DBGrid1KeyPress(TObject *Sender, char &Key)
{
        if (Key == 13)
        {
                if (ADOQuery1->Fields->FieldByName("OrderNumber")->AsString!="" &&ADOQuery1->Fields->FieldByName("Picker")->AsString!="" &&ADOQuery1->Fields->FieldByName("PickerChangeNumber")->AsString!="" &&ADOQuery1->Fields->FieldByName("CheckerChangeNumber")->AsString!="" &&ADOQuery1->Fields->FieldByName("Lines")->AsString!="")
                {
                AnsiString OrderNumberParam=ADOQuery1->Fields->FieldByName("OrderNumber")->AsString;
                AnsiString PickerParam=ADOQuery1->Fields->FieldByName("Picker")->AsString;
                Integer PickerChangeNumberParam=ADOQuery1->Fields->FieldByName("PickerChangeNumber")->AsInteger;
                Integer CheckerChangeNumberParam=ADOQuery1->Fields->FieldByName("CheckerChangeNumber")->AsInteger;
                AnsiString CheckerParam=ADOQuery1->Fields->FieldByName("Checker")->AsString;
                Integer LinesParam=ADOQuery1->Fields->FieldByName("Lines")->AsInteger;
                bool LabelingParam=ADOQuery1->Fields->FieldByName("Labeling")->AsBoolean;

                ADOQuery1->Active=false;
                        ADOQuery1->Close();
                        ADOQuery1->SQL->Clear();
                        ADOQuery1->SQL->Add("Insert into OrderAddTable ( [OrderNumber], [Picker], [PickerChangeNumber], [CheckerChangeNumber], [Checker], [Lines],[Labeling]) values (:OrderNumber, :Picker, :PickerChangeNumber, :CheckerChangeNumber, :Checker, :Lines, :Labeling)");
                        ADOQuery1->Parameters->ParamByName("OrderNumber")->Value=OrderNumberParam;
                        ADOQuery1->Parameters->ParamByName("Picker")->Value=PickerParam;
                        ADOQuery1->Parameters->ParamByName("PickerChangeNumber")->Value=PickerChangeNumberParam;
                        ADOQuery1->Parameters->ParamByName("CheckerChangeNumber")->Value=CheckerChangeNumberParam;
                        ADOQuery1->Parameters->ParamByName("Checker")->Value=CheckerParam;
                        ADOQuery1->Parameters->ParamByName("Lines")->Value=LinesParam;
                        ADOQuery1->Parameters->ParamByName("Labeling")->Value=LabelingParam;
                        ADOQuery1->ExecSQL();
                        ADOQuery1->SQL->Clear();
                        ADOQuery1->SQL->Add ("select * from OrderAddTable");
                ADOQuery1->Active=true;
                ADOQuery1->Append();
                }
                  else
                   {
                   MessageBoxA(NULL,"Íåîáõîäèìî çàïîëíèòü âñå ïîëÿ","Îøèáêà", NULL);
                   }


        }


}




Эта часть по нажатию кнопки enter добавляет в таблицу OrderAddTable строку...

Код

        ADOQuery1->Active=false;
        ADOQuery1->Close();
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add("Insert into OrdersTable ([Date], OrderNumber, Picker, Lines) Select Date, OrderNumber, Picker, Lines from OrderAddTable");
        ADOQuery1->ExecSQL();

        ADOQuery1->Active=false;
        ADOQuery1->Close();
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add("Delete * from OrderAddTable");
        ADOQuery1->ExecSQL();


ADOQuery1->Active=false;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("Select * from OrderAddTable");
ADOQuery1->Active=true;


OrderPickingForm->ADOQuery1->Active=false;
OrderPickingForm->ADOQuery1->Active=true;



А эта переносит данные в другую таблицу, очищает OrderAddTable и обновляет запрос на другой форме, где и отображается результат работы.


Проблема в том, что в результате столбке labeling всегда имеет значение false.

Использую свойство DBGrid picklist. варианты true и false вписал туда сам.

Это сообщение отредактировал(а) Bugmaker - 23.8.2009, 04:34
PM MAIL   Вверх
mrbrooks
Дата 24.8.2009, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 7
Всего: 306



Цитата(Bugmaker @  23.8.2009,  04:33 Найти цитируемый пост)
Все добавляется нормально за исключением одного поля тип данных которого  - логический.

вставка строки генерирует ошибку или нет?
PM MAIL   Вверх
Bugmaker
Дата 25.8.2009, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 27.6.2008

Репутация: нет
Всего: нет



Ошибка не генерируется. 
Проблема была в моих кривых руках, спасибо что откликнулись, уже все нашел сам) Только форум засрал.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0427 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.