Avatar billede muttley Nybegynder
20. juni 2001 - 11:56 Der er 2 løsninger

Databaser søgning

Hejsa.. :)

Jeg har levet en Paradox 7 Database,  og har lavet et lille delphi program i delphi 5.

Jeg har indsat en TDataSource og en TTable,  Og så ville jeg gerne kunne finde en Record i Databasen..

Hvordan gør jeg lige det ??

Det skal siges at der ikke må ske noget synligt på skærmen.. 

Jeg har læst at:
----------------------------------------------
TableName.SetKey;
TableName.Fields[nummer].AsString:=\'Søgeord\';
If not TableName.GotoKey then
  Begin
    ... \"Ikke fundet\"
  End
  Else
  Begin
    ... \"Fundet\"
  End;
----------------------------------------------
- Skulle kunne gøre et eller andet,  men kan sgu ikke få noget til at virke.. 
\"Har også prøvet med FindKey, Locate og Lookup,  stadig uden held..  Men det er nok bare mig.. :)\"

PS. Jeg vil gerne ha´ et eksempel på hvordan men finder en record,  og bruger den fundet record´s data til et eller andet.. 
\"Bare skriver det i et Edit felt eller noget..  Bare så jeg lige kan se hvordan det bruges\"

PPS. Jeg har set at der er \"forbindelse\" til databasen,  da jeg har prøvet at indsætte en DBGrid.. 
\"Bare så i ikke forslår at det ikke er sat rigtigt op eller noget.. ;)\"
Avatar billede zerohero Nybegynder
20. juni 2001 - 21:44 #1
Jeg lavede engang dette (sikkert ikke verdens fedeste løsning da jeg ikke har arbejdet så meget med tables)

//Søger under en bestemt kolonne
table1.setkey;
table1.fieldbyname(\'Kolonne1\').asstring := \'Søgeord\';
if table1.gotokey = false then
showmessage(\'Ikke Fundet\') else
showmessage(\'Fundet\');

PS: det kan godt være du skal sætte det i en lykke i det tilfælde kan du benytte dig af table1.recno & table1.recordcount det svarer til en listbox\'s itemindex & itemcount og kan derfor benyttes på samme måde. eks:

var i : integer; found : boolean;
begin
i := -1; repeat i := i+1;

//Søger under en bestemt kolonne
table1.setkey;
table1.fieldbyname(\'Kolonne1\').asstring := \'Søgeord\';
if table1.gotokey = true then begin
i := table1.recordcount-1; found := true; end;

table1.recno := i;
until i = table1.recordcount-1;

if found = true then showmessage(\'Fundet\') else
showmessage(\'Ikke fundet\');
end;

GOD FORNØJELSE

ZeroHero
Avatar billede muttley Nybegynder
21. juni 2001 - 10:06 #2
ZeroHero >> Jeg fandt selv ud af det,  jeg havde ikke lavet noget forkert i Delphi,  men i Databasen da jeg oprettede den..  \"Havde glemt at mærkere hvilke felter der skulle indgå i Default Index..\"

Men du skal da ha´ lidt for den tid du gad at bruge på mig.. :)
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