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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2008, 16:49   #1
Родион
Пользователь
 
Регистрация: 04.05.2008
Сообщений: 42
По умолчанию Умножение в SQL

Следующий вопрос

есть база
в ней 2 таблицы
одна словарь

|id|название|число|

другая "карточки" собранные из элементов выбранных из списка

|kard_id|elements|koeficient|

к примеру
|1|1,2,3,4|2,34,12,54|
|2|5,6,7,8|12,43,12,65|

спомощью string list я формирую запрос чтобы выбрать из словаря только те записи которые есть в конкретном elements (к примеру 5,6,7,8)

вот код

Код:
procedure TForm2.Button1Click(Sender: TObject);
var
  StList:TstringList;
  i:integer;
  quer:string;
begin
StList:=TstringList.create;
StList.Delimiter:= ',';
StList.DelimitedText:=DBGrid1.SelectedField.Text;
quer:='';
for i := 0 to StList.Count - 1 do
  begin
  if i = StList.Count - 1 then
    quer:=quer+'Slov_ID = '+StList[i]
  else
    quer:=quer+'Slov_ID = '+StList[i]+' OR '
  end;

ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From Slovar');
ADOQuery1.SQL.Add('Where '+quer);
ADOQuery1.Active:=True;

end;
а дальше мне надо соответственно умножить данные из таблицы словаря (число) на koeficient (12,43,12,65)

как это сделать ??

надеюсь не слишком запутанно объяснил ))
Родион вне форума Ответить с цитированием
Старый 12.06.2008, 17:12   #2
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Ничего не понял, запутал так что и сам наверно запутался... Что на что надо множить?
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 12.06.2008, 17:17   #3
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

По-моему так будет легче:

Код:
ADOQuery1.Active:=False;  
ADOQuery1.SQL.Clear;  
ADOQuery1.SQL.Add('Select * From Slovar');  
ADOQuery1.SQL.Add('Where Slov_ID in ('+DBGrid1.SelectedField.Text+')');  
ADOQuery1.Active:=True;
Насколько я понял DBGrid1.SelectedField.Text = 5,6,7,8
Нет невыполнимых задач, всё дело времени...

Последний раз редактировалось D-mon; 12.06.2008 в 17:21.
D-mon вне форума Ответить с цитированием
Старый 12.06.2008, 17:19   #4
Родион
Пользователь
 
Регистрация: 04.05.2008
Сообщений: 42
По умолчанию

есть такое дело ))

короче

в таблицие есть числа
надо помножить их на другие числа

к примеру

Название | Число

надо запросом домножить Число на к примеру 2
Родион вне форума Ответить с цитированием
Старый 12.06.2008, 17:27   #5
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Так я немогу понять в чем проблема.
Используй Update.

Код:
ADOQuery1.Active:=False;    
ADOQuery1.SQL.Clear;    
ADOQuery1.SQL.Add('UPDATE TableName SET Число = Число * 2');       
ADOQuery1.Active:=True;
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение столбиком Stas))) Помощь студентам 12 04.08.2011 21:59
умножение PAWLO1993 Паскаль, Turbo Pascal, PascalABC.NET 4 29.07.2008 18:55
Умножение и деление StiTch_Parazit Помощь студентам 10 20.05.2008 14:32