/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Hjælp til database søges
Fra : Thomsen


Dato : 12-09-01 20:41

Hej ng,

Jeg er løbet ind i et lille problem.
Jeg har lavet et lille database system (uden brug af standard
db-komponenter)
i mit program, hvor alle poster består af
records (altså typen record), som jeg laver vha. New() og Dispose().
Pointerne til alle Precs'ene har jeg så i en Tlist.

Det jeg gerne vil nu, er at lave nogle grupper, som posterne kan være
"medlem" af.
Og en post kan være med i flere grupper.
Disse grupper skal kunne oprettes/fjernes af brugeren i run-time. Grupperne
vil nok
også blive en flok records, hvor pointerne gemmes i en Tlist.

Jeg har eksperimenteret med at have en "Array[0..20] of Boolean" recorden,
men
det begrænser jo antallet af grupper til 21, og det giver en del spildplads,
hvis brugeren
kun opretter fx 2 grupper.

Er det måske muligt at have en "array of Bytes" i recorden, hvor hver byte
refererer til
gruppenummeret, og så bruge "SetLength(Prec(p).GroupArray, x).
Dette vil jo bevirke, at hver record ikke er lige stor i hukommelsen, og så
vil pointerne
til de andre records (som jo er gemt i en Tlist) ikke være korrekte mere,
eller hvad?

Vil dette virke, eller er der andre forslag?

Mvh,
Anders Thomsen



 
 
René Jensen (12-09-2001)
Kommentar
Fra : René Jensen


Dato : 12-09-01 22:37

Thomsen wrote:
> Jeg er løbet ind i et lille problem.
> Jeg har lavet et lille database system (uden brug af standard
> db-komponenter)
> i mit program, hvor alle poster består af
> records (altså typen record), som jeg laver vha. New() og Dispose().
> Pointerne til alle Precs'ene har jeg så i en Tlist.
>
> Det jeg gerne vil nu, er at lave nogle grupper, som posterne kan være
> "medlem" af.
> Og en post kan være med i flere grupper.
> Disse grupper skal kunne oprettes/fjernes af brugeren i run-time. Grupperne
> vil nok
> også blive en flok records, hvor pointerne gemmes i en Tlist.
>
> Jeg har eksperimenteret med at have en "Array[0..20] of Boolean" recorden,
> men
> det begrænser jo antallet af grupper til 21, og det giver en del spildplads,
> hvis brugeren
> kun opretter fx 2 grupper.
>
> Er det måske muligt at have en "array of Bytes" i recorden, hvor hver byte
> refererer til
> gruppenummeret, og så bruge "SetLength(Prec(p).GroupArray, x).
> Dette vil jo bevirke, at hver record ikke er lige stor i hukommelsen, og så
> vil pointerne
> til de andre records (som jo er gemt i en Tlist) ikke være korrekte mere,
> eller hvad?

Hvis jeg forstår dit spørgsmål korrekt, så giver det ikke nogle
problemer, da en pointer er en reference til det sted i hukommelse, hvor
dit data ligger, så uanset hvor meget eller hvor lidt data der ligger i
dine selv-definerede records, så vil pointerene altid pege de rigtige
sted i hukommelse (såfremt du initialere dem først).

> Vil dette virke, eller er der andre forslag?

Med hensyn til andre forslag, er det lidt svært for mig at give et
kvalificerede bud uden nogen form for kode, her tænker jeg på din type
definering af record o.lign.

--
Med venlig hilsen,
René Jensen

Once a wise man told me this:
"I consider Windows as I consider bad weather ... I accept it and hope
for something better!"

Thomas Riedel (13-09-2001)
Kommentar
Fra : Thomas Riedel


Dato : 13-09-01 13:53

Hej Anders

Normalt ville man lave en relationstabel til at holde styr på grupper, der
ikke komplementære:

F.eks En kundedatabase hvor nogen skal have julekort, andre skal have direct
mail og mange skal have begge dele.

Eksempel:

Kundetabel:

Kunde Kundenr
Jensen 1
Hansen 2
Pedersen 3

Relationstabel:
Jensen skal kun have Julekort:
Kundenr Type
1 Julekort
Hansen skal kun have direct mail
2 Direct mail
Pedersen skal have begge dele:
3 Julekort
3 Directmail

På dem måde styrer du grupperingen separat.
Det, at du ikke bruger standard database objekter, gør det lidt besværligt
at slå op i relationstabellen,
men det klarer du nok.

mvh
--
Thomas Riedel, LogiHouse
"Thomsen" <andersthomsen@mobilixnet.dk> wrote in message
news:nOOn7.1397$U11.267161848@news.orangenet.dk...
> Hej ng,
>
> Jeg er løbet ind i et lille problem.
> Jeg har lavet et lille database system (uden brug af standard
> db-komponenter)
> i mit program, hvor alle poster består af
> records (altså typen record), som jeg laver vha. New() og Dispose().
> Pointerne til alle Precs'ene har jeg så i en Tlist.
>
> Det jeg gerne vil nu, er at lave nogle grupper, som posterne kan være
> "medlem" af.
> Og en post kan være med i flere grupper.
> Disse grupper skal kunne oprettes/fjernes af brugeren i run-time.
Grupperne
> vil nok
> også blive en flok records, hvor pointerne gemmes i en Tlist.
>
> Jeg har eksperimenteret med at have en "Array[0..20] of Boolean" recorden,
> men
> det begrænser jo antallet af grupper til 21, og det giver en del
spildplads,
> hvis brugeren
> kun opretter fx 2 grupper.
>
> Er det måske muligt at have en "array of Bytes" i recorden, hvor hver byte
> refererer til
> gruppenummeret, og så bruge "SetLength(Prec(p).GroupArray, x).
> Dette vil jo bevirke, at hver record ikke er lige stor i hukommelsen, og

> vil pointerne
> til de andre records (som jo er gemt i en Tlist) ikke være korrekte mere,
> eller hvad?
>
> Vil dette virke, eller er der andre forslag?
>
> Mvh,
> Anders Thomsen
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste