Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2008, 10:49   #161
Mitriy08
Пользователь
 
Регистрация: 11.07.2008
Сообщений: 91
По умолчанию

Как вариант можно сделать комбобокс и его заполнить (событие должно висеть на AfterScroll) от 0 до Кол-во товара, которое есть на складе.
Можно поставить Edit и разрешить туда вводить только числа (причем только положительные ) + Не выше числа которое есть на складе

ps. Я склоняюсь к первому варианту там все проверки сами отпадают
Mitriy08 вне форума Ответить с цитированием
Старый 12.12.2008, 13:19   #162
opel.omega
Форумчанин
 
Регистрация: 18.11.2008
Сообщений: 188
По умолчанию

блин переделал и все равно не работает счас ваще вылетает а когда перегружаю то там количество -1600 с хвостиком
вот код:

Код:

var
 i:integer;
begin

 while not DataModule1.ADOQuery1.Eof do begin
 i:=DataModule1.ADOQuery1.FieldValues['amount']-StrToInt(DataModule1.ADOzaiavkiamount.AsString);
 DataModule1.ADOQuery1.Edit;
 DataModule1.ADOQuery1.FieldValues['amount']:=i;
 DataModule1.ADOQuery1.Post;
 DataModule1.ADOzaiavki.Next;
 end;

 DataModule1.zaiavkiQuery.First;
while not DataModule1.zaiavkiQuery.Eof do begin
 DataModule1.ADOQuery2.Insert;
 DataModule1.ADOQuery2.FieldValues['detail_name']:=DataModule1.zaiavkiQuery.FieldValues['detail_name'];
 DataModule1.ADOQuery2.FieldValues['header']:=DataModule1.zaiavkiQuery.FieldValues['header'];
 DataModule1.ADOQuery2.FieldValues['parameters']:=DataModule1.zaiavkiQuery.FieldValues['parameters'];
 DataModule1.ADOQuery2.FieldValues['amount']:=DataModule1.zaiavkiQuery.FieldValues['amount'];
 DataModule1.ADOQuery2.FieldValues['price_1detail']:=DataModule1.zaiavkiQuery.FieldValues['price_1detail'];
 DataModule1.ADOQuery2.FieldValues['KlientName']:=DataModule1.zaiavkiQuery.FieldValues['KlientName'];
 DataModule1.ADOQuery2.FieldValues['dataOfSales']:=DataModule1.zaiavkiQuery.FieldValues['dataOfSales'];
 DataModule1.ADOQuery2.Post;
 DataModule1.zaiavkiQuery.Next;
 DataModule1.zaiavkiSum.Active:=False;
end;
 ShowMessage('Выбранный товар продан');
 while not DataModule1.zaiavkiQuery.eof do
 DataModule1.zaiavkiQuery.delete;
 DataModule1.zaiavkiQuery.Refresh;
end;
Хакер - не преступник
Взлом - для искусства
Смысл - в свободе
opel.omega вне форума Ответить с цитированием
Старый 12.12.2008, 13:56   #163
Mitriy08
Пользователь
 
Регистрация: 11.07.2008
Сообщений: 91
По умолчанию

Код:
 DataModule1.zaiavkiQuery.First;
while not DataModule1.zaiavkiQuery.Eof do begin
 DataModule1.ADOQuery2.Insert;
 DataModule1.ADOQuery2.FieldValues['detail_name']:=DataModule1.zaiavkiQuery.FieldValues['detail_name'];
 DataModule1.ADOQuery2.FieldValues['header']:=DataModule1.zaiavkiQuery.FieldValues['header'];
 DataModule1.ADOQuery2.FieldValues['parameters']:=DataModule1.zaiavkiQuery.FieldValues['parameters'];
 DataModule1.ADOQuery2.FieldValues['amount']:=DataModule1.zaiavkiQuery.FieldValues['amount'];
 DataModule1.ADOQuery2.FieldValues['price_1detail']:=DataModule1.zaiavkiQuery.FieldValues['price_1detail'];
 DataModule1.ADOQuery2.FieldValues['KlientName']:=DataModule1.zaiavkiQuery.FieldValues['KlientName'];
 DataModule1.ADOQuery2.FieldValues['dataOfSales']:=DataModule1.zaiavkiQuery.FieldValues['dataOfSales'];
 DataModule1.ADOQuery2.Post;
 DataModule1.zaiavkiQuery.Next;
 DataModule1.zaiavkiSum.Active:=False; //Что это???
end;
 ShowMessage('Выбранный товар продан');
 while not DataModule1.zaiavkiQuery.eof do
 DataModule1.zaiavkiQuery.delete;
 DataModule1.zaiavkiQuery.Refresh;
end;
Код:
while not DataModule1.ADOQuery1.Eof do begin
 i:=DataModule1.ADOQuery1.FieldValues['amount']-StrToInt(DataModule1.ADOzaiavkiamount.AsString);
 DataModule1.ADOQuery1.Edit;
 DataModule1.ADOQuery1.FieldValues['amount']:=i;
 DataModule1.ADOQuery1.Post;
 DataModule1.ADOzaiavki.Next;
 end;
Естественно не правильно...
Во превых те нужно апдэйтить, только те записи, которые будут соответсвовать записям которые находятся в корзине!!!

Записи подобные на эти
Код:
StrToInt(DataModule1.ADOzaiavkiamount.AsString)
Можно заменять на
Код:
DataModule1.ADOzaiavkiamount.AsInteger
Ну а по поводу твоего апдэйта количества товара примерно будет так
Код:
.....
var
  j : Integer;
  UpdateDelQuery: TAdoquery;
.......
begin
.....
DataModule1.ADOzaiavkiamount.First;
UpdateQuery := TADOQuery.Create(Self);
With UpdateDelQuery do
begin
     Name := 'UpdateDelQuery';
     Connection := какаойтоAdoConnection
     Close;
end;

for i:=0 to DataModule1.ADOzaiavkiamount.RecordCount - 1 do
begin

{Сразу апдэйтим количество товара}

DataModule1.UpdateDelQuery.Clear;
//Table1 - табличка где содиржится инфа о товарах и его кол-ве
//ColItem - кол-во товара

//MyID - ID товара
UpdateDelQuery.SQL.Add('Update Table1 set ColItem=ColItem-'DataModule1.ADOzaiavkiamount.AsString +' Where MyId = 'IntToStr(ид_товара));
//Выполняем запрос
UpdateDelQuery.ExecSQL
//Очищаем скл текст
UpdateDelQuery.Clear;
UpdateDelQuery.SQL.Add('Сдесь пишется запрос для вставки что то типа Insert into бла бла бла');
UpdateDelQuery.ExecSQL;
DataModule1.ADOzaiavkiamount.Next;
end;
//теперь удаляем все записи с корзины
UpdateDelQuery.Clear;
UpdateDelQuery.SQL.Add(delete from корзина);
UpdateDelQuery.ExecSQL;
ShowMessage('Что то сделали');
UpdateDelQuery.Free //Все сделали уничтожаем..
ps. Подскажу одно: Можно вставку записей организовать одним запросом
Примерый вид у него будет такой
Код:
Insert into Table1 (имена полей) 
select (поля которые должны соответсвовать вставляемым)  from table2
join.....

Последний раз редактировалось Mitriy08; 12.12.2008 в 14:09.
Mitriy08 вне форума Ответить с цитированием
Старый 12.12.2008, 14:40   #164
opel.omega
Форумчанин
 
Регистрация: 18.11.2008
Сообщений: 188
По умолчанию

блин все равно не работает
счас выложу исходник гляньте
Хакер - не преступник
Взлом - для искусства
Смысл - в свободе
opel.omega вне форума Ответить с цитированием
Старый 12.12.2008, 14:45   #165
opel.omega
Форумчанин
 
Регистрация: 18.11.2008
Сообщений: 188
По умолчанию

вот он окоянный исходник скт.rar
Хакер - не преступник
Взлом - для искусства
Смысл - в свободе
opel.omega вне форума Ответить с цитированием
Старый 12.12.2008, 15:06   #166
Mitriy08
Пользователь
 
Регистрация: 11.07.2008
Сообщений: 91
По умолчанию

Цитата:
Сообщение от opel.omega Посмотреть сообщение
блин все равно не работает
счас выложу исходник гляньте
Что именно не получается?
Делай по кускам и задавай вопросы.
Лично я готового решения не скажу могу только натолкнуть на мысль.
Получится просто медвежья услуга, а в итоге ты сам не разберешся.....
В принципе все ответы на твои вопросы я изложил 2 поста выше.
Mitriy08 вне форума Ответить с цитированием
Старый 12.12.2008, 19:48   #167
Mitriy08
Пользователь
 
Регистрация: 11.07.2008
Сообщений: 91
По умолчанию

Кстати и опиши еще для чего какая у тебя табличка и ее поля так сказать, чтобы быстрее понимать, что у тебя написано....
Mitriy08 вне форума Ответить с цитированием
Старый 12.12.2008, 20:00   #168
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

Что то читал читал и запутался ... Конкретный вопрос есть ?
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 13.12.2008, 09:37   #169
opel.omega
Форумчанин
 
Регистрация: 18.11.2008
Сообщений: 188
По умолчанию

вот что я пишу по нажатию продажа
Код:
var
  j : Integer;
  UpdateDelQuery: TAdoquery;

begin

DataModule1.ADOzaiavkiamount.First;
UpdateQuery := TADOQuery.Create(Self);
With UpdateDelQuery do
begin
     Name := 'UpdateDelQuery';
     Connection := AdoConnection
     Close;
end;

for i:=0 to DataModule1.ADOzaiavkiamount.RecordCount - 1 do
begin

DataModule1.UpdateDelQuery.Clear;
UpdateDelQuery.SQL.Add('Update ADOzaiavki set amount=amount-'DataModule1.ADOzaiavkiamount.AsString +' Where IDSales = 'IntToStr(IDSales));
UpdateDelQuery.ExecSQL
UpdateDelQuery.Clear;
UpdateDelQuery.SQL.Add('');
UpdateDelQuery.ExecSQL;
DataModule1.ADOzaiavkiamount.Next;
end;
UpdateDelQuery.Clear;
UpdateDelQuery.SQL.Add(delete from корзина);
UpdateDelQuery.ExecSQL;
ShowMessage('Товар продан');
UpdateDelQuery.Free 
   end;
а вот какие ошибки он мне выдает
Цитата:
[Error] Sales.pas(191): Undeclared identifier: 'TAdoquery'
[Error] Sales.pas(195): Undeclared identifier: 'First'
[Error] Sales.pas(196): Undeclared identifier: 'UpdateQuery'
[Error] Sales.pas(196): Missing operator or semicolon
[Error] Sales.pas(200): Undeclared identifier: 'Connection'
[Error] Sales.pas(200): Undeclared identifier: 'AdoConnection'
[Error] Sales.pas(201): Missing operator or semicolon
[Error] Sales.pas(204): Undeclared identifier: 'i'
[Error] Sales.pas(204): Undeclared identifier: 'RecordCount'
[Error] Sales.pas(209): Undeclared identifier: 'UpdateDelQuery'
[Error] Sales.pas(209): Missing operator or semicolon
[Error] Sales.pas(214): Missing operator or semicolon
[Error] Sales.pas(214): Missing operator or semicolon
[Error] Sales.pas(214): Missing operator or semicolon
[Error] Sales.pas(214): 'END' expected but ')' found
[Error] Sales.pas(224): Declaration expected but identifier 'UpdateDelQuery' found
[Error] Sales.pas(225): Illegal character in input file: 'к' ($EA)
[Error] Sales.pas(229): '.' expected but ';' found
[Fatal Error] skt.dpr(14): Could not compile used unit 'Sales.pas'
Хакер - не преступник
Взлом - для искусства
Смысл - в свободе
opel.omega вне форума Ответить с цитированием
Старый 13.12.2008, 09:51   #170
opel.omega
Форумчанин
 
Регистрация: 18.11.2008
Сообщений: 188
По умолчанию

и еще вопрос что озночает этот код
Код:

UpdateQuery := TADOQuery.Create(Self);
With UpdateDelQuery do
begin
     Name := 'UpdateDelQuery';
     Connection := AdoConnection
     Close;
end;
Хакер - не преступник
Взлом - для искусства
Смысл - в свободе
opel.omega вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi + Acces Artazzz БД в Delphi 5 19.06.2008 14:32
Поиск нескольких записей VenMaster БД в Delphi 1 14.06.2008 22:48
delphi & acces fluer БД в Delphi 4 17.02.2008 12:53
Сохранение нескольких записей из DbGrid в базу Canadec БД в Delphi 5 06.09.2007 14:26
добавления в готовую таблицу Strelka Microsoft Office Excel 1 09.03.2007 17:27