Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.11;
Скачать: CL | DM;

Вниз

Помогите найти ошибку   Найти похожие ветки 

 
Дева ©   (2005-11-23 05:20) [0]

Написала код, по логике веще должно все работать правильно, однако запрос ADOQuerySale ничего не пишет в таблицу. Утро уже видать раннее, спать пора топать - вот башка совершенно не соображает. Вот код, может кто сообразит, в чем загвоздка:

//приход
procedure TFormSB.Bring(bBarCode: String);
var
iSale: Integer;
begin
iSale:=0;
//работа с каталогом
ADOQueryPrice.Close;
ADOQueryPrice.Prepared;
ADOQueryPrice.Parameters.ParamByName("pBarCode").Value:=bBarCode;
ADOQueryPrice.Open;
if ADOQueryPrice.IsEmpty = true then
           begin
           ShowMessage("в каталоге не присутсвует!");
           //внести в каталог
           with DlgPriceForm do
             begin
             Caption:="Добавить запись о товаре";
             Edit2.Text:="";
             Edit3.Text:="";
             Edit4.Text:="";
             Edit1.Text:=bBarCode;
             end;
           if DlgPriceForm.ShowModal = mrOk then
               begin
               ADOQueryPrice.Close;
               ADOQueryPrice.SQL.Clear;
               ADOQueryPrice.SQL.Add("SELECT * FROM Price");
               ADOQueryPrice.Open;
               ADOQueryPrice.Insert;
               ADOQueryPrice.Fields.Fields[0].AsString:=DlgPrice.DPEd1;
               ADOQueryPrice.Fields.Fields[1].AsString:=DlgPrice.DPEd2;
               ADOQueryPrice.Fields.Fields[2].AsVariant:=StrToFloat(DlgPrice.DPEd3);
               ADOQueryPrice.Fields.Fields[3].AsString:=DlgPrice.DPEd4;
               try
               ADOQueryPrice.Post;
               except
               ShowMessage("Ошибка! Одинаковые штрих-коды");
               ADOQueryPrice.Delete;
               end;
               ADOQueryPrice.Close;
               ADOQueryPrice.SQL.Add("WHERE BarCode = :pBarCode");
               end;
           end;
//запрос Sale - проверка присутсвия в продаже товара
ADOQuerySale.Open;
ADOQuerySale.Locate("BarCode", bBarCode,[loCaseInsensitive]);
if ADOQuerySale.Fields.Fields[0].AsString <> bBarCode then
   begin
//  внести в Sale
   ADOQuerySale.Last;
   iSale:=ADOQuerySale.Fields.Fields[2].AsInteger+1;
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Вот именно тут загвоздка. Информация в таблицу не попадает.
   ADOQuerySale.Insert;
   ADOQuerySale.Fields.Fields[2].AsInteger:=iSale;
   ADOQuerySale.Fields.Fields[1].AsInteger:=0;
       ShowMessage(IntToStr(iSale));//вставила чисто для проверки,
//движется ли здесь процесс, сообщение выдается - значет движется,
//но почему тогда не пишется в таблицу?
   ADOQuerySale.Fields.Fields[0].AsString:=bBarCode;
   ADOQuerySale.Post;
   end;
//пишу в Sale количество - больше на один
ADOQuerySale.Edit;
ADOQuerySale.Fields.Fields[1].AsVariant:=ADOQuerySale.Fields.Fields[1].AsInteger+1;
ADOQuerySale.Post;
ADOQuerySale.Close;
//пишу в таблицу прихода
ADOQueryBring.Open;
ADOQueryBring.Insert;
ADOQueryBring.Fields.Fields[1].AsVariant:=Date;
ADOQueryBring.Fields.Fields[2].AsString:=bBarCode;
ADOQueryBring.Post;
end;

P. S. прошу не судить строго, может я и вправда какую-то мелочь не заметила, но просто уже утро, а я спать не ложилась


 
Separator ©   (2005-11-23 05:57) [1]

>            if DlgPriceForm.ShowModal = mrOk then
>               begin
   ADOQuery1.Close;
   ADOQuery1.SQL.Text:= "INSERT INTO Price (Field1, Field1, Field1, Field1) VALUES (" + DlgPrice.DPEd1 + ", " + DlgPrice.DPEd2 + ", " + StrToFloat(DlgPrice.DPEd3) + ", " + DlgPrice.DPEd4 ")";
   ADOQuery1.ExecSQL;

Вот Ё, проще и понятней использовать SQL


 
Дева ©   (2005-11-23 15:05) [2]

Нашла, почему не работает... В свойствах ADOQuerySale было
LockType = ltBatchOptimistik...
Что это вообще такое?


 
clickmaker ©   (2005-11-23 15:08) [3]

http://www.interface.ru/fset.asp?Url=/borland/ado3.htm



Страницы: 1 вся ветка

Текущий архив: 2005.12.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
2-1132778916
vasek
2005-11-23 23:48
2005.12.11
не работает динамически созданный обработчик


1-1131631572
Суслик
2005-11-10 17:06
2005.12.11
Вопрос про warning


14-1132404609
Гость101
2005-11-19 15:50
2005.12.11
Куда написать чтобы закрыли программу


2-1132303903
LionMen
2005-11-18 11:51
2005.12.11
Консольное приложение


3-1130058026
darklord
2005-10-23 13:00
2005.12.11
update тока одной записи