Avatar billede whynot Nybegynder
25. januar 2004 - 21:00 Der er 4 kommentarer og
1 løsning

insert variabel med table

Halløjsa..

jeg har en datasource, en connection og en table..

jeg connecter til min mysql-db... og alt er fino...

jeg har en dbgrid og en dbnavigator... og alle data bliver fint vist.!

Men nu kommer mit spørgsmål...

En af felterne i db'en er en nøgle til en anden db.. denne skal brugeren ikke skrive noget i - systemet skal tilgengæld gerne selv udfylde dette felt.. MEN hvordan får man systemet til det?

altså jeg viser en tabel med brugere for virksomhed x.. når fyren brugeren tilføjer en ny bruger, skal systemet selv tilføje x i feltet "virksomhed" som nøgle.

plz help.

som en note.. jeg bruger MyDAC for delphi 7.. men det er vel i princippet ligegyldigt - eller?
Avatar billede nca Juniormester
26. januar 2004 - 08:09 #1
I Access gøres det automatisk :-)
I en anden tabel hvor jeg har brug for et index, sorterer jeg basen på indexfeltet, går til sidste post og aflæser det sidst brugte index. Tilføjer 1 og skriver den nye værdi i det nye indexfelt.
Avatar billede hrc Mester
26. januar 2004 - 14:25 #2
I Interbase har jeg følgende - måske virker det under MySql.


/* drop table Owner; */
create table Owner
(
  ID numeric not null primary key,
  Caption char(60) default '' not null
);

CREATE GENERATOR OWNERID_GEN;

commit;

SET TERM !! ;
CREATE TRIGGER SET_OWNERID FOR Owner
BEFORE INSERT POSITION 0 AS BEGIN
  NEW.ID = GEN_ID(OWNERID_GEN, 1);
END !!

SET TERM ; !!
Avatar billede whynot Nybegynder
26. januar 2004 - 16:13 #3
øhmm.. nu kan det godt være at jeg udstiller mig selv som en total idiot.. men når man bruger disse her standard komponenter - jamen så har man vel ikke direkte kontrol over hvad der sker ved et insert.. eller..?

Som sagt har jeg en dbnavigator, en ttable og en dbgrid.. når jeg trykker på insert i dbnavigatoren.. så gør dbnavigatoren en helt masse bag min ryg. Altså en helt masse som jeg ikke behøver at tænke på.. men i mit tilfælde vil jeg jo gerne bruge disse standard værktøjer og samtidig have indflydelse på hvad der sker.. jeg håber det giver lidt klarhed over mit spørgsmål.
Avatar billede hrc Mester
26. januar 2004 - 16:58 #4
Tjooo... Jeg bruger ikke selv "DataAware" komponenter, hvilket gør det noget mere besværligt for mig idet jeg skal lave meget tung SQL men fordelen er, at jeg kan flytte megen logik ned i databasen. Referentiel integritetstjek, eksempelvis.

Ovenstående eksempel laver en autoincrementerende primærnøgle (reagerer på BEFORE INSERT).

Kender ikke MyDAC, men mon ikke de komponenter har en tilsvarende OnBeforeInsert event et eller andet sted, hvor du kan indsætte manglende værdier?
Avatar billede whynot Nybegynder
26. januar 2004 - 17:24 #5
det er nemlig det.. det har MyDAC tilsyneladende ikke.. men jeg er ikke sikker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester