|
|
|
Supreme Being
      
участник
Last Login: 28.06.2007 10:01
Сообщ.: 244,
Visits: 2 268
|
|
Люди, проблема в следующем:
есть таблица рубрик в БД (ACCESS). Далее создаются на лету другие таблицы, где поле "IdRubrika" рубрики состоит в связи "много к одной" той самой таблицы рубрик. Вовпрос: как мне создать связь с энтой таблицей рубрик? Дело в том. что инстркция CREATE TABLE не дает такой возможности!
|
|
|
|
|
Supreme Being
      
участник
Last Login: 29.09.2007 22:12
Сообщ.: 343,
Visits: 3 388
|
|
|
|
|
|
Supreme Being
      
участник
Last Login: 28.06.2007 10:01
Сообщ.: 244,
Visits: 2 268
|
|
а ALTER TABLE только через DAO.. и то ошибку выдает.. может примерчик хоть маленький? Есть таблица "рубрик" (ключевое IdRubrik) и создается таблица наименований с собственным ключем и полем IdRubrik с связью таблицы "рубрик".
Спасибо заранее :)
|
|
|
|
|
Supreme Being
      
участник
Last Login: 29.09.2007 22:12
Сообщ.: 343,
Visits: 3 388
|
|
[quote="mentos_has_arisen"]а ALTER TABLE только через DAO.. и то ошибку выдает.. может примерчик хоть маленький? Есть таблица "рубрик" (ключевое IdRubrik) и создается таблица наименований с собственным ключем и полем IdRubrik с связью таблицы "рубрик".
Спасибо заранее :) [/quote]
Ты хоть(как тот Колобок), намекни, чем стучишь с Access...
|
|
|
|
|
Supreme Being
      
участник
Last Login: 29.09.2007 22:12
Сообщ.: 343,
Visits: 3 388
|
|
Да и врешь ты все на счет ограничения CREATE TABLE.. Пример на Delphi 5, АДО:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOC.Connected := True;
Qry.SQL.Text := ''drop table t1'';
Qry.ExecSQL;
Qry.SQL.Text := ''create table t1( idRubrik integer not null, Rubrik char(100), primary key(idRubrik))'';
Qry.ExecSQL;
Qry.SQL.Text := ''create table t2( id integer not null, IdRubrik integer, primary key (id), foreign key(idRubrik) references t1(idRubrik))'';
Qry.ExecSQL;
end;
Как видим, стандарт SQL
|
|
|
|
|
Forum Guru
      
участник
Last Login: 24.03.2006 12:42
Сообщ.: 55,
Visits: 606
|
|
[quote="vpanasenko"]Да и врешь ты все на счет ограничения CREATE TABLE.. Пример на Delphi 5, АДО:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOC.Connected := True;
Qry.SQL.Text := ''''drop table t1'''';
Qry.ExecSQL;
Qry.SQL.Text := ''''create table t1( idRubrik integer not null, Rubrik char(100), primary key(idRubrik))'''';
Qry.ExecSQL;
Qry.SQL.Text := ''''create table t2( id integer not null, IdRubrik integer, primary key (id), foreign key(idRubrik) references t1(idRubrik))'''';
Qry.ExecSQL;
end;
[/quote]
Зачем же так резко... Во первых: ADO работает через драйвер, а человек видимо работает из интерфейса. Во вторых: т.к. ADO работает через драйвер, то не факт, что приведенный выше пример должен работать на Access-е всех версий, не говоря уже о том что описанные конструкции - это уже transact SQL, а не стандарт ...
|
|
|
|
|
Supreme Being
      
участник
Last Login: 29.09.2007 22:12
Сообщ.: 343,
Visits: 3 388
|
|
[quote="Airhand"][quote="vpanasenko"]Да и врешь ты все на счет ограничения CREATE TABLE.. Пример на Delphi 5, АДО:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOC.Connected := True;
Qry.SQL.Text := ''''''''drop table t1'''''''';
Qry.ExecSQL;
Qry.SQL.Text := ''''''''create table t1( idRubrik integer not null, Rubrik char(100), primary key(idRubrik))'''''''';
Qry.ExecSQL;
Qry.SQL.Text := ''''''''create table t2( id integer not null, IdRubrik integer, primary key (id), foreign key(idRubrik) references t1(idRubrik))'''''''';
Qry.ExecSQL;
end;
[/quote]
Зачем же так резко... Во первых: ADO работает через драйвер, а человек видимо работает из интерфейса. Во вторых: т.к. ADO работает через драйвер, то не факт, что приведенный выше пример должен работать на Access-е всех версий, не говоря уже о том что описанные конструкции - это уже transact SQL, а не стандарт ...[/quote]
Кто такое сказал, то Т-сиквел ? Эта конструкция очень даже работоспособна и в InterBase/FireBird... А этот сервер очень сильно привязан к стандарту SQL(в отличии от "скалы")
|
|
|
|
|
Supreme Being
      
участник
Last Login: 29.09.2007 22:12
Сообщ.: 343,
Visits: 3 388
|
|
| Да, еще... Все-таки в вопросе (повторяюсь) для приличия нужно указать, чем стучишь к БД... Может, он вообще в машкодах кодит, а мы тут копья ломаем..:-)))
|
|
|
|
| | |