Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Таблицы Paradox(выборка данных) 
:(
    Опции темы
ilyaooooo
Дата 28.9.2010, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



как сделать так что бы из таблиц "Б" бралась запись и находилась в таблице "В" и была №по счёту указаным в  другой таблице .... (см. РИС)
Например: 
"Б"     №    "В"
111     2   111
222     1   111
333     3   333
444     1   333
111     1   333
                444
                222

Это сообщение отредактировал(а) ilyaooooo - 28.9.2010, 11:09

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  ___.JPG 173,72 Kb
PM MAIL   Вверх
pseud
Дата 28.9.2010, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



простым SQL здесь не обойтись


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
ilyaooooo
Дата 28.9.2010, 10:58 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids, XPMan;

type
  TForm1 = class(TForm)
    Database1: TDatabase;
    DBScheck: TTable;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    DBStripe: TTable;
    DBGrid2: TDBGrid;
    DataSource2: TDataSource;
    Button1: TButton;
    NewStripe: TTable;
    DBGrid3: TDBGrid;
    DataSource3: TDataSource;
    DataSource4: TDataSource;
    DBPlane: TTable;
    DBGrid4: TDBGrid;
    DataSource5: TDataSource;
    DBARTICUL: TTable;
    DBGrid5: TDBGrid;
    DataSource6: TDataSource;
    DBGRAPH1: TTable;
    DBGrid6: TDBGrid;
    XPManifest1: TXPManifest;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function DayToDate(i: string):string;
begin
result:=DateToStr(StrToDateTime('01.01.2010')+StrToInt(i) - 1);
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
    s: string;
    n: string;
begin
  for i:=1 to DBScheck.RecordCount do
begin

  /////////////////////// таблица Scheck//////////////////////

if DBStripe.FindKey([DBScheck.FieldByName('RUGID').asstring])=true then
      s:=DayToDate(copy(DBStripe.fieldbyname('WORKID2').AsString,1,3));
      s:=s+copy(DBScheck.fieldbyname('RUGID').AsString,1,6)  +
           DBScheck.fieldbyname('WEAVE').AsString +
           copy(DBScheck.fieldbyname('RUGID').AsString,1,6)  +
           DBScheck.fieldbyname('SSORT').AsString  ;

    /////////////////////// таблица Plane//////////////////////

if DBScheck.FindKey([DBPlane.FieldByName('NPLANE').asstring])=true then
   begin
    n:= DBScheck.fieldbyname('RUGNUM').AsString ;
    DBScheck.RecNo:=StrToInt(n);
   end
   else ?????????????????????????????????????
???????????????????????????????????
????????????????????????
?????????????????

    s:=s+DBPlane.fieldbyname('PICT').AsString +
           DBPlane.fieldbyname('GAMMA').AsString +
           DBPlane.fieldbyname('WIDRUG').AsString +
           DBPlane.fieldbyname('KIND').AsString +
           DBPlane.fieldbyname('LENRUG').AsString ;

    /////////////////////// таблица Articul//////////////////////

if DBPlane.FindKey([DBArticul.FieldByName('CODE').asstring])=true then
          s:=s+DBArticul.fieldbyname('ARTICUL').AsString  ;

   /////////////////////// таблица Graph1//////////////////////

{if DBGraph1.FindKey([DBScheck.FieldByName('WORKID1').asstring])=true then
       s:=s+DBGraph1.fieldbyname('MASHINE').AsString  ;  }

NewStripe.Append;
NewStripe.fieldbyname('Stripe').asstring:=s;
NewStripe.Next;
s:='';
DBScheck.Next;
{DBPlane.Next;
DBArticul.Next;
DBGraph1.Next;  }
end;
end;
end.


Это сообщение отредактировал(а) ilyaooooo - 28.9.2010, 11:01
PM MAIL   Вверх
pseud
Дата 28.9.2010, 11:14 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



Код

with TQuery.Create(Database1) do
try
  SQL.Add('select');
  SQL.Add('  *');
  SQL.Add('from');
  SQL.Add('  таблица_В t');
  SQL.Add('where');
  SQL.Add('  t.поле_кода = <..333..>');
  Active := True;
  i := 1;
  while not Eof do
  begin
    if i = <..3..> then
    begin
      <..ура нашел..>;
      Break;
    end;
    inc(i);
    Next;
  end;
finally
  Free;
end;



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
cat512
Дата 28.9.2010, 13:10 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Используй GROUP BY. если надо join-Ы
Например такой запрос;
Код

select 
  t2.key, Count(t2.Num) as number 
from 
  table1 t1, table2 t2
where t1.key = t2.key
GROUP BY t2.key




PM MAIL   Вверх
pseud
Дата 28.9.2010, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



cat512, кто-то из нас троих не в теме лучшей жизни.
ilyaooooo, расскажи по-человечески. Возможно тебе с совершенно другой стороны лопатой надо ковырять.


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Akella
Дата 28.9.2010, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Нужно показать на форме два грида и когда выбираешь запись в основном гриде, то в дополнительном должны быть соответствующие записи, да? Мастер-деталь?
PM MAIL   Вверх
ilyaooooo
Дата 28.9.2010, 15:29 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Akella @ 28.9.2010,  15:23)
Нужно показать на форме два грида и когда выбираешь запись в основном гриде, то в дополнительном должны быть соответствующие записи, да? Мастер-деталь?

НЕТ!
у меня много таблиц и связь между ними идёт так...
Код

/////////////////////// таблица Scheck//////////////////////

if DBStripe.FindKey([DBScheck.FieldByName('RUGID').asstring])=true then
      s:=DayToDate(copy(DBStripe.fieldbyname('WORKID2').AsString,1,3));
      s:=s+copy(DBScheck.fieldbyname('RUGID').AsString,1,6)  +
           DBScheck.fieldbyname('WEAVE').AsString +
           copy(DBScheck.fieldbyname('RUGID').AsString,1,6)  +
           DBScheck.fieldbyname('SSORT').AsString  ;

    /////////////////////// таблица Plane//////////////////////

if DBScheck.FindKey([DBPlane.FieldByName('NPLANE').asstring])=true then

т.е. выбиарются опеделённые записи и добавляются в новую таблицу!!!!
PM MAIL   Вверх
cat512
Дата 28.9.2010, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(pseud @ 28.9.2010,  13:50)
cat512, кто-то из нас троих не в теме лучшей жизни.
ilyaooooo, расскажи по-человечески. Возможно тебе с совершенно другой стороны лопатой надо ковырять.

Согласен. Я долго гадал что есть "номер по порядку" и пришёл к выводу, что это есть ничто иное как Count (судя по приведённой табличке и скриншоту). А если это count то достаточно использовать Group BY. ТС по конкретней разъяснить суть надо.

Добавлено через 4 минуты и 22 секунды
Судя по постам, ТС явно избегает использования Sql, при этом пользуется какими то кустарными методами на клиенте
PM MAIL   Вверх
Akella
Дата 28.9.2010, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(ilyaooooo @  28.9.2010,  10:00 Найти цитируемый пост)
как сделать так что бы из таблиц "Б" бралась запись и находилась в таблице "В" и была №по счёту

берёшь запись из перовой таблицы, узнаешь значение поля, по этому значению делаешь фильтр во второй таблице, там будет только несколько вот эти записей:
user posted image

потом просто перемещаешься на запись №4

PM MAIL   Вверх
pseud
Дата 28.9.2010, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



 smile 
Akella, да?
cat512, нет?
мужики, бросай лопаты )



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Akella
Дата 28.9.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



бросил ))
PM MAIL   Вверх
cat512
Дата 28.9.2010, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 smile , тоже бросил
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


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

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

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


 




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


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

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