Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с массивами 
:(
    Опции темы
dize
Дата 11.9.2009, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 1.7.2009

Репутация: нет
Всего: нет



Здесь выполняется заполнение массива с номерами тех клиентов, которые выбраны в combobox(query[0]) и по соответствию выбранного названия документа в combobox(query[1]). 
Код

  //заполнение массива с номерами
  ADOQ_nomera.Close;
  ADOQ_nomera.SQL.Clear;
  ADOQ_nomera.SQL.Add('SELECT Nomer_sd.Kod_klienta, Nomer_sd.Nomer, Nomer_sd.Sec_name');
  ADOQ_nomera.SQL.Add('FROM Nomer_sd INNER JOIN groups ON Nomer_sd.id_group=groups.id_group');
  ADOQ_nomera.SQL.Add('WHERE Nomer_sd.Sec_name="'+query[1]+'" and groups.group="'+query[0]+'"');
  ADOQ_nomera.Open;

  SetLength(nomer,ADOQ_nomera.RecordCount);
  count3:=ADOQ_nomera.RecordCount-1;
  k:=0;
  while (not ADOQ_nomera.Eof) do
   begin
      nomer[k]:=ADOQ_nomera.FieldByName('Nomer').AsString;
      ADOQ_nomera.Next();
      k:=k+1;
   end;



Здесь выполняется заполнение массива с клиентами, которые выбраны в combobox(query[0]) и по соответствию выбранного названия документа в combobox(query[1]). 
Код

//заполнение массива с клиентами
 ADOQ_sex.Close;
  ADOQ_sex.SQL.Clear;
  ADOQ_sex.SQL.Add('SELECT Nomer_sd.Kod_klienta, Nomer_sd.Sec_name');
  ADOQ_sex.SQL.Add('FROM Nomer_sd INNER JOIN groups ON Nomer_sd.id_group=groups.id_group');
  ADOQ_sex.SQL.Add('WHERE Nomer_sd.Sec_name="'+query[1]+'" and groups.group="'+query[0]+'"');
  ADOQ_sex.Open;

  SetLength(cli,ADOQ_sex.RecordCount);
  count4:=ADOQ_sex.RecordCount-1;
  z:=0;
  while (not ADOQ_sex.Eof) do
   begin
      cli[z]:=ADOQ_sex.FieldByName('Kod_klienta').AsString;
      ADOQ_sex.Next();
      z:=z+1;
   end;


Для заполнения бд используется следующий код
Код

begin
    for z:=0 to count4 do
    begin
      for k:=0 to count3 do
      begin
      sql:= 'INSERT INTO Zayavki (Kod_klienta, Bumaga_socr, CLASSCODE, Kod_bumagi, [Action], Nomer_zayvki) VALUES ("'+cli[z]+'", "'+sec+'", "'+class_code+'", "'+id_paper+'", "KILL_ORDER", "'+nomer[k]+'")';

    showmessage(sql);
    ADOQ_new.Close;
    ADOQ_new.SQL.Clear;
    ADOQ_new.SQL.Text:=sql;
    ADOQ_new.ExecSQL;
    end;
    end;
    end;

Заполняет бд ест-но неверно. Собственно вопрос, как сделать принадлежность клиентам именно их номеров(номера всегда разные).
Вставляться должно по принципу: столько строк каждому клиенту, сколько у него номеров с заданными условиями содержит таблица Nomer_sd(условия: принадлежность клиента к выбираемой группе из комбобокса и наличие названия бумаги, выбираемой из другого комбобокса). Заранее извиняюсь, если слишком размыто объяснил суть проблемы.
--------------------
- Скажите, Большой Брат существует в том же смысле что и я? - Вы не существуете.
PM MAIL   Вверх
dize
Дата 14.9.2009, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 1.7.2009

Репутация: нет
Всего: нет



Слишком простой вопрос или слишком мало исходных данных, что никто не отвечает?
--------------------
- Скажите, Большой Брат существует в том же смысле что и я? - Вы не существуете.
PM MAIL   Вверх
Frees
Дата 14.9.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



Цитата(dize @  14.9.2009,  17:19 Найти цитируемый пост)
Слишком простой вопрос или слишком мало исходных данных, что никто не отвечает?

не слишком понятный

по моему тебе нужно посмотреть в сторону TDBLookupComboBox


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
dize
Дата 14.9.2009, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 1.7.2009

Репутация: нет
Всего: нет



Цитата(Frees @  14.9.2009,  14:24 Найти цитируемый пост)
по моему тебе нужно посмотреть в сторону TDBLookupComboBox

Хм..непонятно только как это может помочь. Обычные cobobox работают как надо, выборки по ним тоже. Проблема в соответствии двух выборок между собой, либо надо каким-то образом эти два вышеописанных запроса объединить в один, что наверно логичнее и решит проблему, но лично я не знаю как это сделать.
--------------------
- Скажите, Большой Брат существует в том же смысле что и я? - Вы не существуете.
PM MAIL   Вверх
dize
Дата 15.9.2009, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 1.7.2009

Репутация: нет
Всего: нет



Чтобы лучше объяснить ситуацию..
user posted image
При условии выборки из одной группы(query[0]), в которую входят данные клиенты из таблицы Nomer_sd и имеют Sec_name(query[1]) "a", добавление данных в таблицу Kill_o должна выглядеть как на изображении.
--------------------
- Скажите, Большой Брат существует в том же смысле что и я? - Вы не существуете.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.