USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Relacionamento no MSDE
Waldirjr
POÇOS DE CALDAS
MG - BRASIL
Postada em 26/05/2004 16:40 hs            
Ola, galera.
To c/ um probleminha na migracao das tabelas do ACCESS para o MSDE.
Tenho o Seguinte:
   - Tab_Familia
      *Chave = Familia
  
   - Tab_Marca
      *Chave = Marca      

   - Tab_Modelo
      *Chave = Familia -relacionamento c/ Tab_Famila
               Marca   -relacionamento c/ Tab_Marca
               Modelo

   - Tab_Localidade
      *Chave = Localidade

   - Tab_Produto
      *Chave = Localidade -relacionamento c/ Tab_Localidade
               Familia    -relacionamento c/ Tab_Modelo
               Marca      -relacionamento c/ Tab_Modelo
               Modelo     -relacionamento c/ Tab_Modelo
               Complemento

Fazendo isso no Menu Relacionamento do ACCESS dava tudo certo, mas eu sei que as validacoes do ACCESS nao sao tao rigidas qto do SQL (MSDE, no caso).

Estou usando um prog. que funciona como o Enterprise Manager, chamado
SQL Lite, nele eu digito as linhas abaixo e da o seguinte erro:
   - Nao existem chaves primarias ou candidatas na tabela de referencia 'Tab_Modelo' que corresponde, a lista de colunas de referencia na chave externa 'FK__Tab_Produto___422D4EF'

Imagino que seja algum erro na mameira em que estou relacionando as Tabelas, mas nao consigo pensar em outra forma mais pratica.

Segue o Codigo:

/* Tab_Familia - CRIAR TABELA E CHAVE PRIMARIA */
CREATE TABLE Tab_Familia (
   Familia   Char          (3)  Not Null,
   Descricao VarChar       (25)     Null,
   DataHora  SmallDateTime          Null
   )
GO

ALTER TABLE Tab_Familia Add Primary Key (Familia)
GO

/* Tab_Marca - CRIAR TABELA E CHAVE PRIMARIA */
CREATE TABLE Tab_Marca (
   Marca     Char          (3)  Not Null,
   Descricao VarChar       (25)     Null,
   DataHora  SmallDateTime          Null
   )
GO
            
ALTER TABLE Tab_Marca Add Primary Key (Marca)
GO
              
/* Tab_Modelo - CRIAR TABELA E CHAVE PRIMARIA */
CREATE TABLE Tab_Modelo (
   Familia   Char          (3)  Not Null,
   Marca     Char          (3)  Not Null,
   Modelo    Char          (3)  Not Null,
   Descricao VarChar       (25)     Null,
   DataHora  SmallDateTime          Null
   )
GO

ALTER TABLE Tab_Modelo Add Primary Key (Modelo, Marca, Familia)
GO

ALTER TABLE Tab_Modelo Add Foreign Key (Familia) REFERENCES Tab_Familia(Familia)
ALTER TABLE Tab_Modelo Add Foreign Key (Marca)   REFERENCES Tab_Marca  (Marca)
GO

/* Tab_Localidade - CRIAR TABELA E CHAVE PRIMARIA */
CREATE TABLE Tab_Localidade (
   Localidade         Char          (2)  Not Null,
   Nome               VarChar       (40)     Null,
   Razao_Social       VarChar       (40)     Null,
   Endereco           VarChar       (40)     Null,
   Numero             VarChar       (5)      Null,
   Bairro             VarChar       (30)     Null,
   CEP                Char          (9)      Null,
   Cidade             VarChar       (30)     Null,
   Estado             Char          (2)      Null,
   Pais               VarChar       (30)     Null,
   Telefone           VarChar       (16)     Null,
   CNPJ               VarChar       (18)     Null,
   Inscricao_Estadual VarChar       (19)     Null,
   DataHora           SmallDateTime          Null
   )
GO

ALTER TABLE Tab_Localidade Add Primary Key (Localidade)
GO

/* Tab_Produto - CRIAR TABELA E CHAVE PRIMARIA */
CREATE TABLE Tab_Produto (
   Localidade          Char          (2)  Not Null,
   Familia             Char          (3)  Not Null,
   Marca               Char          (3)  Not Null,
   Modelo              Char          (3)  Not Null,
   Complemento         VarChar       (6)  Not Null,
   Descricao           VarChar       (44)     Null,
   Unidade             VarChar       (3)      Null,
   Custo               Float                  Null,
   Custo_Medio         Float                  Null,
   Codigo_Fiscal       Float                  Null,
   DataHora            SmallDateTime          Null
   )
GO

ALTER TABLE Tab_Produto Add Primary Key (Complemento, Modelo, Marca, Familia, Localidade)
GO

ALTER TABLE Tab_Produto Add Foreign Key (Localidade)             REFERENCES Tab_Localidade         (Localidade)
ALTER TABLE Tab_Produto Add Foreign Key (Familia, Marca, Modelo) REFERENCES Tab_Modelo             (Familia, Marca, Modelo)
GO

Agradeco toda ajuda desde ja.

________________________

Té +

Que NIMB role bons Dados! Emoções

     
Waldirjr
POÇOS DE CALDAS
MG - BRASIL
Postada em 26/05/2004 20:03 hs            
Emoções?????Emoções

________________________

Té +

Que NIMB role bons Dados! Emoções

     
Jose.Niz
CURITIBA
PR - BRASIL
ENUNCIADA !
Postada em 27/05/2004 00:03 hs         
WALDIRJR, repare nas duas linhas abaixo (nos campos em negrito), não existe problema algum no MSDE e sim nos comandos SQL.

ALTER TABLE Tab_Modelo Add Primary Key (Modelo, Marca, Familia)

ALTER TABLE Tab_Produto Add Foreign Key (Familia, Marca, Modelo) REFERENCES Tab_Modelo (Familia, Marca, Modelo)

Existe um inversão de colunas na Foreign Key em relação a Primary Key da tabela Tab_Modelo.
   
Waldirjr
POÇOS DE CALDAS
MG - BRASIL
Postada em 27/05/2004 10:43 hs            
Po, Brigadao hein! Deu certinho.
 
Agradeco a Vc Jose.Niz por clarear minha cabeca e ao VBWeb por abrir esse espaco.Emoções

________________________

Té +

Que NIMB role bons Dados! Emoções

     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página