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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2010, 20:09   #1
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию Сравнение striggrid c dbgrid

как написать:
Код:
Если 1ячейка stringgrid2 (тут текст) = какой нибудь из первой ячейки в dbgrid(в нем много строк, а сравнивающаяся ячейка в 1 столбце -тут тоже текст)
то
2 ячейка stringgrid2 записывается во вторую ячейку найденной выше строки 
 в stringgrid может быть много строк(т.е. сначала первая строка проводит выше написаную операцию потом вторая и т.д.)
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 10.10.2010, 23:37   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Три раза прочитал и ничего не понял...
_SERGEYX_ вне форума Ответить с цитированием
Старый 11.10.2010, 00:02   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

Я понял так
Цитата:
Если 1ячейка stringgrid2 (тут текст) = какой нибудь из первой ячейки в dbgrid(в нем много строк,
Код:
where field1 =:prm
Цитата:
2 ячейка stringgrid2 записывается во вторую ячейку найденной выше строки
Код:
set field2=:txt
все вместе =SQL
Код:
update table1 set field2=:txt where field1 =:prm
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 11.10.2010, 07:39   #4
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Ну попробую в рисуночке обьяснить
Безымянный.jpg
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 11.10.2010, 09:20   #5
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Цитата:
Сообщение от grafgrial Посмотреть сообщение
Ну попробую в рисуночке обьяснить
Вложение 30713
Кажется я вас понял - вы хотите изменить значение в DBGrid с помощью StringGrid:
используйте цикл, в теле которого прописана команда на обновление полей базы данных (в данном случае поля "Кол-во").
Количество шагов цикла равно количеству строк в String Grid.
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.

Последний раз редактировалось Sparkman; 11.10.2010 в 09:22.
Sparkman вне форума Ответить с цитированием
Старый 11.10.2010, 09:51   #6
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Цитата:
Кажется я вас понял - вы хотите изменить значение в DBGrid с помощью StringGrid
именно! но в том то и проблема что я не смог написать, остановился на этом варианте, но он не работает. Писал в 3 часа ночи, сам не понимая что написал

Код:
for ik:=0 to Form1.StringGrid2.RowCount-1 do
  for i:=0 to DModule.ADOTable1.Fields.Count-1 do
  if Form1.StringGrid2.Cells[0,ik]=DModule.ADOTable1.Fields[i].Value then
DModule.ADOTable1.Fields.Fields[i].AsString:=Form1.StringGrid2.cells[1,ik];
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 11.10.2010, 09:57   #7
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Цитата:
Сообщение от grafgrial Посмотреть сообщение
именно! но в том то и проблема что я не смог написать, остановился на этом варианте, но он не работает. Писал в 3 часа ночи, сам не понимая что написал

Код:
for ik:=0 to Form1.StringGrid2.RowCount-1 do
  for i:=0 to DModule.ADOTable1.Fields.Count-1 do
  if Form1.StringGrid2.Cells[0,ik]=DModule.ADOTable1.Fields[i].Value then
DModule.ADOTable1.Fields.Fields[i].AsString:=Form1.StringGrid2.cells[1,ik];
И скорей всего компилятор выдает ошибки?
Нужно что-то типа этого: DModule.ADOTable1.Fields.Fields[i].Value := Form1.StringGrid2.cells[1,ik].
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 11.10.2010, 10:14   #8
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

да выдает ошибку и не изменяет данные, но не при компиляции. А при работе
Безымянный.bmp
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 11.10.2010, 10:15   #9
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Ясно.
Поехали циклом по Stringgrid-у:
Код:
var i: integer; String1, String2: String;

  for i := 0 to StringGrid1.RowCount - 1 do
  begin
    String1 := StringGrid1.Cells[0, i];
    String2 := StringGrid1.Cells[1, i];

      Query.close;
      Query.SQL.Clear;
      Query.SQL.Add('Update TABLENAME Set ' +
        'kolichestvo=' + QuotedStr(String2)+ 
        'Where (name=' + QuotedStr(string1) + ')');
      Query.ExecSQL;
  end;
Но этот метод плохой. Для материалов должен быть какой-то числовой идентификатор, например, КОД материала. А делать поиск по названию несерьёзно.
В названиях могут быть кавычки, недопустимые символы, кладовщик может переименовать материал и т.п. Один лишний пробел в названии - и программа начнет работать некорректно.
_SERGEYX_ вне форума Ответить с цитированием
Старый 11.10.2010, 10:20   #10
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Куда мне это все прописывать? Я еще ни разу не работал с SQL
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение edit and dbgrid grafgrial Общие вопросы Delphi 9 09.10.2010 16:11
массив delphi с элементами main menu и striggrid elucia Помощь студентам 0 10.05.2010 22:51
Перемещение даннах из dbgrid в dbgrid Hobbit_88 БД в Delphi 7 10.06.2009 13:33
перенос данных из DBGrid в DBGrid KingSize БД в Delphi 17 24.04.2009 09:30
StrigGrid и печать artemavd Общие вопросы Delphi 5 21.07.2008 12:04