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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2013, 14:14   #1
Ardarik
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 80
По умолчанию Запись в переменную

Есть запрос
Код:
ADOQuery2.Close;
ADOQuery2.SQL.Text := ('SELECT `Наименование`,`Количество` FROM spec WHERE id_device='+c+';');
ADOQuery2.Open;
Как мне Наименование и Количество записать в переменную ?
Когда одно значение использую
Код:
While not ADOQuery2.Eof do
  begin
     c:=ADOQuery2.Fields[0].AsString;

     ADOQuery2.Next;
  end;
Ardarik вне форума Ответить с цитированием
Старый 06.05.2013, 14:13   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Ну например так:

Код:
While not ADOQuery2.Eof do
  begin
     c:=ADOQuery2.Fields[0].AsString+'='+ADOQuery2.Fields[1].AsString;

     ADOQuery2.Next;
  end;
И далее при необходимости парсить переменную по символу "равно", получая количество и наименование.

Или объявить переменную типа record с полями name, count и писать в эти поля соответственно наименование и количество.

Вариантов много, эти самые очевидные. Пока не уточните, зачем это все надо и как Вы эту переменную потом используете - точного варианта кроме Вас никто не подберет. Только предложения
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 06.05.2013, 18:48   #3
Ardarik
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 80
По умолчанию

Мне нужны эти значение чтоб поместить в запрос. Вроде понял как спасибо
Ardarik вне форума Ответить с цитированием
Старый 06.05.2013, 20:27   #4
Ardarik
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 80
По умолчанию

Блин. Где то косяк. Не пойму что не так
Код:
procedure TForm4.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text := ('UPDATE project_name SET status= 1 WHERE `id_проект`='+Combobox1.Text+';');
ADOQuery1.ExecSQL;

ShowMessage('Проект №'+Combobox1.Text+' запущен в производство.');

ADOQuery1.Close;
ADOQuery1.SQL.Text := ('SELECT `id_device` FROM device WHERE id_device IN (SELECT id_device, `Количество` FROM project WHERE id_project_name = '+(ComboBox1.Text)+')');
ADOQuery1.Open;

While not ADOQuery1.Eof do
  begin
     d:=ADOQuery1.Fields[0].AsString;
     cd:=AdoQuery1.Fields[1].AsInteger;

ADOQuery2.Close;
ADOQuery2.SQL.Text := ('SELECT  `Наименование`, `Количество` FROM spec WHERE id_device='+ d +';');
ADOQuery2.Open;

  While not ADOQuery2.Eof do
  begin
     n:=ADOQuery2.Fields[0].AsString;
     cn:=ADOQuery2.Fields[1].AsInteger;

     ADOQuery3.Close;
ADOQuery3.SQL.Text := ('INSERT INTO `Get` (id_project_name, id_device, id_name, number)  VALUES('+(ComboBox1.Text)+', '+d+', '+n+', '+(IntToStr(cd*cn))+');');
ADOQuery3.ExecSQL;

     ADOQuery2.Next;
  end;
  ADOQuery1.Next;
  end;

end;
Изображения
Тип файла: jpg Безымянный1.jpg (21.9 Кб, 36 просмотров)
Ardarik вне форума Ответить с цитированием
Старый 06.05.2013, 20:42   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
IN (SELECT id_device, `Количество`
Тут должен возврашаться одномерный набор а не матрица. Выбирай - либо IN для количества, либо для id_device - должно быть что-то одно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2013, 20:43   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
IN (SELECT id_device, `Количество`
Тут должен возврашаться одномерный набор а не матрица. Выбирай - либо IN для количества, либо для id_device - должно быть что-то одно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись данных из БД в переменную Jopses PHP 12 25.03.2013 13:48
Запись большого числа в переменную pavelitel Общие вопросы C/C++ 16 27.11.2012 21:55
ASP // Запись ячейки БД в переменную Veiron Общие вопросы .NET 2 30.03.2010 23:28
Запись данных ячейки в переменную myxosran Помощь студентам 3 06.03.2010 20:27
Запись из файла в переменную Sekt Общие вопросы C/C++ 1 20.10.2009 13:02