2 opções em Delphi 7

Delphi

23/10/2008

Boa tarde a todos....

Eu tenho um banco de dados onde tem um campo com varias opções para o usuario selecionar:
Exemplo:
Administrador de rede
DBA
Programador ASP
Programador PHP

Como faço para o usuario poder selecionar 2 ou mais opções deste mesmo campo?
Como ele guarda isto em banco de dados...?

O que devo utilizar para fazer?

Obrigado
Uelinton


Uelinton_reis

Uelinton_reis

Curtidas 0

Respostas

Juniorvieira

Juniorvieira

23/10/2008

CARA, pelo que entendi vc que colocar duas ou mais informações no mesmo campo e dentro da mesma linha de registro.. não vai funcionar claro. vc faz o seguinte.

O relacionamento é 1:N. crie duas tabelas.
a primeira vc coloca os campos (COD_XXX, DESCRICAO ) que vai guardar suas opções . Agora crie uma terceira tabela que vai guardar
a referencia para chave primaria da tabela que vc já tem.

Ai vc guarda a relação. Nessa terceira tabela vc teria N registros com n opções. lembre-se de colocar chave estrangeira


GOSTEI 0
Uelinton_reis

Uelinton_reis

23/10/2008

CARA, pelo que entendi vc que colocar duas ou mais informações no mesmo campo e dentro da mesma linha de registro.. não vai funcionar claro. vc faz o seguinte. O relacionamento é 1:N. crie duas tabelas. a primeira vc coloca os campos (COD_XXX, DESCRICAO ) que vai guardar suas opções . Agora crie uma terceira tabela que vai guardar a referencia para chave primaria da tabela que vc já tem. Ai vc guarda a relação. Nessa terceira tabela vc teria N registros com n opções. lembre-se de colocar chave estrangeira


É mais ou menos assim:

Tem alguns sites que vc cadastra o seu curriculo que tem um DBListBox com varias opções de vagas...
E vc pode selecionar até tres vagas.

Como isto acontece..
tem algum exemplo que vc possa me enviar na pratica....?
Como fazer isto?

Obrigado.

Uelinton


GOSTEI 0
Dgsfilho

Dgsfilho

23/10/2008

Cria as tabelas: Candidato, Vaga e VagaCandidato.


CREATE TABLE CANDIDATO (
  CODCANDIDATO                   INTEGER NOT NULL
 ,NOMECANDIDATO                  VARCHAR(60) NOT NULL
 ,CONSTRAINT PK_CANDIDATO PRIMARY KEY (CODCANDIDATO)
);

CREATE TABLE VAGA (
  CODVAGA                        INTEGER NOT NULL
 ,NOMEVAGA                       VARCHAR(20) NOT NULL
 ,CONSTRAINT PK_VAGA PRIMARY KEY (CODVAGA)
);

CREATE TABLE VAGACANDIDATO (
  CODVAGA                        INTEGER NOT NULL
 ,CODCANDIDATO                   INTEGER NOT NULL
 ,CONSTRAINT PK_VAGACANDIDATO PRIMARY KEY (CODVAGA, CODCANDIDATO)
);

CREATE INDEX IXFK_VAGACANDIDATO_1_CODVAGA ON VAGACANDIDATO (CODVAGA);

ALTER TABLE VAGACANDIDATO
  ADD CONSTRAINT FK_VAGACANDIDATO_CANDIDATO FOREIGN KEY (CODCANDIDATO)
    REFERENCES CANDIDATO (CODCANDIDATO)
;

ALTER TABLE VAGACANDIDATO
  ADD CONSTRAINT FK_VAGACANDIDATO_VAGA FOREIGN KEY (CODVAGA)
    REFERENCES VAGA (CODVAGA)
;



GOSTEI 0
Juniorvieira

Juniorvieira

23/10/2008

:D O esquema de criação relacional da base de dados é como nosso amigo acima fez. Que foi o que eu tinha dito antes mas sem o nivel de detalhe dos scripts.

1- Habilitar o multiselect do listbox.

2- Fazer um loop FOR nos itens do listbox

3-Verficar dentro do LOOP os intens que estão com checked := true

4- Se item checado .vc Vai usar uma rotina para inserir na terceira tabela guardadndo suas referencias


GOSTEI 0
Juniorvieira

Juniorvieira

23/10/2008

:D O esquema de criação relacional da base de dados é como nosso amigo acima fez. Que foi o que eu tinha dito antes mas sem o nivel de detalhe dos scripts.

1- Habilitar o multiselect do listbox.

2- Fazer um loop FOR nos itens do listbox

3-Verficar dentro do LOOP os intens que estão com checked := true

4- Se item checado .vc Vai usar uma rotina para inserir na terceira tabela guardadndo suas referencias


GOSTEI 0
POSTAR