Avatar billede koden12 Nybegynder
28. september 2003 - 21:17 Der er 73 kommentarer og
1 løsning

I Delphi kan man ikke lave Database , eller

Der er noget jeg ikke forstår..
(OK der er meget : )
Men noget af det er : Jeg kan ikke forstå hvorfor man
i Delphi laver databaser der ikke kan søges i ej heller ses i.
Med det mener jeg, at der kun kan være ganske få ord
i en almindelig DBEdit og i en DBMemo kan du ikke søge ej
heller kan den lægges ind i en DBGrid.
Så hvis man i Delphi laves sig en Database det være sig i ADO
eller BDE, så kan der læsse en masse data ind i mega små
DBEdit og dem der lægges ind i DBMemo har du ingen chance
for at finde noget som helst i.
Du kan heller ikke bladre det hurtigt igennem i en DBGrid fx så
du hutigt kan finde det.
Det kan du ikke fordi DBMemo ikke kan ses i DBGrid.
Kan det være rigtigt at det er så torsket lavet ?
Den eneste mulighed der findes er små data, under 250 ord, som du
kan søge i hvis du husker at lave en masse Nøgler.
Hvad skal man så bruge en database til ?
Var det ikke for at kunne have store mængder af data på lidt plads
og for hurtigt at kunne finde det ?
Det er nøjagtigt de 2 ting du ikke kan..
Kan nogle forklare mig dette ?
Måske kan man, men det er ikke noget der er Offentligt tilgængeligt..
Eller hvad ?
VH
SprøgerJørgen
Avatar billede erikjacobsen Ekspert
28. september 2003 - 21:31 #1
Databaser er egentlig ikke beregnet til fritekst søgning i store
memo felter. Det er ikke synderlig effektivt. Så snart vi snakker
nøglefelter, så er du inde på det databaser (bl.a.) handler om.

Om Delphi har de begrænsninger du nævner, kan jeg ikke huske.
Avatar billede snowball Novice
28. september 2003 - 22:57 #2
koden12: Jeg har nævnt det for dig før, men siger det nu igen. Drop DB komponenterne i Delphi, og lav det hele selv med en almindelige Labels, Edits, Memos osv. Det kræver mere kode, ja, men man har meget mere styr over tingene og man kan få vist indholdet af databasen lige som man vil have det.

"Den eneste mulighed der findes er små data, under 250 ord"

Det er så ikke helt rigtigt. Det kommer an på hvilket datatype du vælger i din database. Som jeg læser det her spørgsmål, så har du stadig meget at lære om databaser, så hvis det er planen at du fremover skal lave Delphi applikationer der bygger på en database, så vil jeg foreslå dig at låne en bog om databaser og så på den måde lære en masse om hvordan man får mest ud af en database :)

Snowball
Avatar billede janbb Juniormester
29. september 2003 - 02:21 #3
koden12:memofelterne bliver jo en del af en html-side hvis du laver en online database og htm-siderne kan man søge fuldtekst på så det er måske en mulighed.
Avatar billede janbb Juniormester
29. september 2003 - 02:25 #4
I onlinedatabaser kan man osse vise memoer i en grid, men som snowball nævner er der konstruerede grids.Prøv komponenterne fra http://cgiexpert.com , hvis du kører IIS i din win-vers.
Avatar billede janbb Juniormester
29. september 2003 - 02:26 #5
og iøvr. har delphi med webbroker.
Avatar billede janbb Juniormester
29. september 2003 - 02:39 #6
Det er ikke fordi jeg har koden til at søge fuldtekst i htm-sider, men jeg er stødt på det engang og det bruges jo en del i søgemaskiner, men giver vistnok kun siden så jeg er ikke helt sikker på det er så let alligevel.Man kunne lægge hver rekord ud som en selvstændig htm-side ?.Stort arbejde og stadig ikke egnet til store tekster .. hmm.Det ville kræve en dobbelt-operation, hvor man så tog teksten ind i en teksteditor for at finde linien.
Avatar billede koden12 Nybegynder
29. september 2003 - 10:52 #7
Snowball det lyder intressant det med de over 250 ord. Det må du gerne fortælle mere om... når du får tid : )
Jeg er ikke "Kodebange" men jeg har en fornemmelse af at med kode mener du SQL ?
VH
Koden12
Avatar billede snowball Novice
29. september 2003 - 11:14 #8
koden12: Nu ved jeg ikke lige hvilken database du pt benytter dig af, men hvis det f.eks. er en Access database, og du ønsker at gemme en længere tekst, så skal du vælge Notat/Memo i stedet for Tekst/Text hvis du vil have muligheden for at gemme strenge på mere end 250 tegn.

Med kode mener jeg at du selv skal lave din SQL - ligesom i det ADO eksempel du tidligere har fået af mig. I den sidste ende kan det sagtens betale sig at lære SQL. Som jeg skrev tidligere, så lån nogle bøger/hæfter om det (databaser og SQL) så du kan lære det :)

F.eks. hæftet "Databasedesign med Access 2000" - http://www.libris.dk/default.asp?loadside=/Vis_produkt.asp?ISBN=87-7843-409-2 og "Start på SQL" - http://www.libris.dk/default.asp?loadside=/Vis_produkt.asp?ISBN=87-7843-169-7

Snowball
Avatar billede koden12 Nybegynder
29. september 2003 - 15:20 #9
Hej Snowball tak for de fine råd, men det tror jeg nu ikke jeg har nødigt at læse...
Det er ikke for at underkende dig..
Forresten har nogle set siden : http://www.fidani.hjem.wanadoo.dk/
Den er fyldt med Delphi programmer... se især hvordan programmerne lukker : )
Hvordan gør han dog det ?
VH
Koden12
Avatar billede snowball Novice
29. september 2003 - 15:40 #10
koden12: Selvfølgelig skal jeg ikke bestemme om du skal læse noget eller ej, men er det som sagt noget du skal bruge i fremtiden, så er det uden tvivl værd at bruge noget tid på at lære noget om det så du kan lave tingene på den bedste måde.

"se især hvordan programmerne lukker"

Har prøvet at hente et par af programmerne, men kan ikke lige umiddelbart se der sker noget specielt når man lukker programmet !?

Snowball
Avatar billede janbb Juniormester
29. september 2003 - 15:43 #11
Har svært ved at se hvad en hjemmeside med madopskrifter har med dit ellers udemærkede spm. at skaffe.Databaser er en af de mere seriøse sider af programmering og SQL kommer du næppe uden om i den forbindelse.Man kan self. bruge madopskrifter som en øvelse i forb. m. databaserne ?.
Avatar billede snowball Novice
29. september 2003 - 15:55 #12
janbb: Der findes andet end opskrifter på den side koden12 linker til  http://www.fidani.hjem.wanadoo.dk/alprog.html - men ja, det var lidt af et enme skift ;)

Snowball
Avatar billede koden12 Nybegynder
29. september 2003 - 15:57 #13
Jo OK det er måske ikke så seriøst , han har en "kvikmail" der kan snakke med 2 text filer på en gang og lukker på en sjov måde..
Madopskrifter ? dem så jeg ikke bare at han havde en masse Delphi Programmer man kunne hente.
VH
koden12
Avatar billede snowball Novice
29. september 2003 - 16:23 #14
koden12: At snakke med 2 text filer er ikke noget problem via en TStringList. Mht. at lukke programmet på den måde han gør, så er det bare at lave nedenstående i din OnFormClose procedure:

  While Not (Form1.Height < 30) Do Begin
    Form1.Height := Form1.Height - 1;
    If Form1.Height = 27 Then //Højden på den blå bar i toppen
      Application.Terminate;
  End;


Snowball
Avatar billede koden12 Nybegynder
29. september 2003 - 18:37 #15
Hej Snowball mf.
Det er det jeg mener, noget kode der kan bruges til noget er svært at skaffe. Selv var jeg en af dem der fik Delphi 2.0 på min dengang win3.11 Den Delphi med den flotte opstart med en bil der køre som install.
Omkring IDG blade er det med SQL mest til DB2 fra IBM og syntaksen vil ikke passe til hverken Delphi eller Access SQL.
Jeg tog min EDB eksamens hovedopgave i Access 2.0 for mange år siden så den tror jeg ikke jeg behøver læse (igen, igen)..
Næææ hvordan ser fx systaksen ud for en delphi SQL hvor den kan søges fra en edit1.text det kan jeg ikke finde nogle steder.
Det er sådan noget der er kedeligt, at jeg har 5 dyre og store bøger om Delphi og de allesammen bruger næsten alle sider til at beskrive hvordan man finder rundt i Delphi...  Hvad med at beskrive hvordan koden Pascal bruges ?
Når du nu nævner at jeg skal bruge Notat eller GLOB eller MEMO for at kunne få over 255 tegn så er det jo klart. Men hvis der ikke kan søges i den hvad skal den så bruges til.
Delphi kan kun søge i dem som er udnævnt som nøgler og MEMO kan ikke udvælges som nøgler.
I VB kunne jeg lave en SQL der sagde noget i retning af Select * from bla og sammenlign det med det der står i edit1.text  IF := true Then end;
If not True MOVE NEXT record.
Det gør den så hele MEMO eller Notat tabellen igennem.
Men ikke i Delphi, der er det ligemeget om jeg vender numsen mod øst eller vest køber bøger eller ej, der kan og må ikke søges.
Men jeg er ikke så god til Delphi endnu.. Da jeg opgav den dengang 2.0 kom på markedet.
VH
Koden12
Avatar billede janbb Juniormester
30. september 2003 - 00:01 #16
Nu skal det har forhåbentlig ikke være en konkurrence om hvem der har været med i stenalderen, men jeg har altsaa måttet skrive mine regneopgaver ind på hulkort engang og vi måtte sidde og vente mens opgaverne blev sendt via et kabel over atlanterhavet og tilbage igen.Der findes masser af eksempler på at der kan søges i gigantiske mængder af textdata, men det er ikke sikkert at man lige havner med et snuptag på den linie hvor moster olgas fiskefrikadeller er nævnt.Det findes der formentlig en god forklaring på.Iøvrigt har jeg tænkt lidt mere over det med en htm-udskrift af databasen, idet der jo saa er mulighed for en alm. textsøgning - voila.Selvfølgelig kan tingene lade sig gøre hvis man vil og forhåbentlig med lidt hjælp osse, ingen er jo eksperter i alting.
Avatar billede koden12 Nybegynder
30. september 2003 - 00:07 #17
svar
Avatar billede snowball Novice
30. september 2003 - 08:21 #18
koden12: Vil lige kommentere dine påstande:

"Omkring IDG blade er det med SQL mest til DB2 fra IBM og syntaksen vil ikke passe til hverken Delphi eller Access SQL."

Ikke korrekt! Jeg har selv brugt det "Start på SQL" hæfte som jeg linker til tidligere, og der er ikke noget af det man ikke kan bruge i hverken Delphi eller Access. Jo, der er måske lige nogle få advancerede ting som Access ikke kan klare, men man kan i hvert fald bruge det hele på en MS SQL Server. Så vidt jeg husker, så er DB2 slet ikke nævnt i det hæfte. Hæftet tager udgangspunkt i T-SQL hvilket betyder at man kan bruge det de skriver på stort set enhver database.

"Næææ hvordan ser fx systaksen ud for en delphi SQL hvor den kan søges fra en edit1.text det kan jeg ikke finde nogle steder."

Det kan gøres forskelligt alt efter hvilke komponenter man vælger at benytte. Jeg benytter, som det nok er gået op for dig, ikke specifikke DB komponenter (ud over dem til at lave forbindelsen, selvfølgelig). Et hurtigt (tænkt) eksempel:

1) Opret en ny applikation
2) Smid en ADOConnection, ADODataSet, 2 edit felter og en button på din form
3) Indstil din ADOConnection så den peger på din database og sæt LoginPrompt til False
4) Skriv nedenstående kode på din buttons OnClick

  ADODataSet1.Close;
  ADODataSet1.CommandText := 'SELECT * FROM Table1 WHERE Field1 = :pField1';
  ADODataSet1.Parameters.ParamByName('pField1').Value := Edit1.Text;
  ADODataSet1.Open;
  If ADODataSet1.RecordCount = 1 Then
    Edit2.Text := ADODataSet1.FieldByName('Field1').AsString
  Else Begin
    ListBox1.Clear;
    While Not ADODataSet1.Eof Do Begin
      ListBox1.Items.Add(ADODataSet1.FieldByName('Field1').AsString);
      ADODataSet1.Next;
    End;
  End;

5) Du har nu søgt i databasen efter det du skrev i Edit1, og hvis der kun findes 1 post der passer til din søgning, så indsættes den i Edit1. Hvis der er flere, så indsættes de alle i ListBox1.

Alternativt kan du også lave dine ADODataSet og ADOCommand dynamisk efterhånden som du skal bruge dem.

"Det er sådan noget der er kedeligt, at jeg har 5 dyre og store bøger om Delphi og de allesammen bruger næsten alle sider til at beskrive hvordan man finder rundt i Delphi...  Hvad med at beskrive hvordan koden Pascal bruges ?"

Så har du købt de forkerte bøger. Der findes flere ganske udemærkede bøger om hvordan man koder i Delphi.

"Når du nu nævner at jeg skal bruge Notat eller GLOB eller MEMO for at kunne få over 255 tegn så er det jo klart. Men hvis der ikke kan søges i den hvad skal den så bruges til."

Forkert igen. Selvfølgelig kan der søges i det. Alt hvad du kan putte i en database kan du også søge på igen - også fra Delphi. Den eneste "ikke søgbar" datatype jeg lige kan komme i tanke om er BLOB, men man kan sikkert alligevel søge i den på en eller anden måde.

"Delphi kan kun søge i dem som er udnævnt som nøgler og MEMO kan ikke udvælges som nøgler."

Forkert igen igen. Det kan godt være det er sådan hvis man bruger DB komponenterne, men laver du det selv, så kan du søge på alle felter - også dem der ikke er angivet som Primary Key (endnu en grund til ikke at bruge DB komponenterne ;))

"I VB kunne jeg lave en SQL der sagde noget i retning af Select * from bla og sammenlign det med det der står i edit1.text  IF := true Then end;
If not True MOVE NEXT record."

Det kan man også i Delphi, men det var da en besværlig måde at finde det rigtige data på. I din SELECT sætter du bare en WHERE del på som jeg har gjort i mit eksempel. Så får du kun de data du skal bruge, og er dermed fri for at bladre dig igennem x antal poster for at finde det du skal bruge.

"Men ikke i Delphi, der er det ligemeget om jeg vender numsen mod øst eller vest køber bøger eller ej, der kan og må ikke søges."

Jo, man både kan og må søge i Delphi! Det er bare et spørgsmål om at du skal finde ud af hvordan man gør.

"Men jeg er ikke så god til Delphi endnu.. Da jeg opgav den dengang 2.0 kom på markedet."

Det er efterhånden gået op for mig ;o)

Snowball
Avatar billede koden12 Nybegynder
30. september 2003 - 11:03 #19
Hej Snowball
Det var en ordentlig omgang. Ja der er nok nogle ting jeg skal have tænkt over og leget med i delphi. Det kommer at tage tid. Meget tid. Jeg husker hvor mange år det tog at blive VB god.. Men den er udgået og jeg giver ikke Op over for Delphi. Som du ved har jeg købt Delphi 7.0.. Selv om jeg ikke har arbejde.
(jeg kan ikke finde ud af af registrerer den, selv om jeg sendet registrering med deres tools står det forsat ikke registreret, men den er købt og betalt : )
Mange tak også for dit svar, jeg havde taget den af fordi nogle måske blev sure.
Jeg kan forsat ikke forstå (ikke så mærkeligt siger du) hvad det pField står for.
Et pege felt ? til hvad ?
Jeg gik på www og fandt noget igår nat.
VH
Koden12
Avatar billede snowball Novice
30. september 2003 - 11:07 #20
pField er et navn man selv angiver. Jeg angiver dem altid med bogstavet p (p for parameter) og derefter navnet på det felt i databasen som parameteren angiver.

Snowball
Avatar billede koden12 Nybegynder
30. september 2003 - 11:29 #21
Fatter jeg ikke.. men du skal ikke blive ved, det må være trættende..
Så :
Var pField : String;
VH
Koden12
Avatar billede snowball Novice
30. september 2003 - 11:40 #22
Nej, ikke variabler på den måde. Du skal ikke oprette dem. Med udgangspunkt i mit eksempel:

  ADODataSet1.Close;
  ADODataSet1.CommandText := 'SELECT * FROM Table1 WHERE Field1 = :pField1';
  ADODataSet1.Parameters.ParamByName('pField1').Value := Edit1.Text;
  ADODataSet1.Open;

Her angiver jeg at der i SQL sætningen er en parameter der hedder "pField1". I næste linie giver jeg så den parameter en værdi ved at angive at pField1 er lig med det der står i Edit1.

En anden måde at gøre det på, er at lave hele sin SQL sætning i en streng som vist nedenfor:

var
  strSQL: String;

  strSQL := 'SELECT * FROM Table1 WHERE Field1 = '''+Edit1.Text'''';
  ADODataSet1.Close;
  ADODataSet1.CommandText := strSQL;
  ADODataSet1.Open;


Resultatet bliver det samme ligemeget hvilken en af de 2 ovenstående måder man gør det på. Det er bare smag og behag hvordan man helst vil gøre.

Snowball
Avatar billede koden12 Nybegynder
30. september 2003 - 13:33 #23
ÅÅÅÅ , sådan !  Nu har jeg fattet den !!! (endelig) Mange, Mange, tusinde tak Snowball, tak !!!!
Hvad med nogle point ?  Jeg har jo taget der af..
Venlig Hilsen
Koden12
Avatar billede snowball Novice
30. september 2003 - 13:36 #24
Tja, hvis du mener jeg har fortjent nogle point, så opretter du bare et nyt spørgsmål i Delphi kategorien med titlen "Point til Snowball" og i selve spørgsmålet skriver du så bare at jeg får pointene for dette spørgsmål.

Snowball
Avatar billede koden12 Nybegynder
30. september 2003 - 15:02 #25
sqlString:= 'SELECT * FROM tabel1 WHERE eksemplet= '''+Edit1.Text'''';
Der må være noget galt med den sætning ?
[Error] Dkode1.pas(72): Missing operator or semicolon
VH
Koden12
Avatar billede janbb Juniormester
30. september 2003 - 15:39 #26
koden 12:Jeg håber ikke du har opfattet min kommentar om stenalderen som 'surt', det var ikke meningen - jeg lytter skam interesseret til dette
spændende spm. :)
Avatar billede koden12 Nybegynder
30. september 2003 - 15:46 #27
Der må væer for mange eller for få af de der : ''' edit1.text''''
Hej janbb , næ men jeg bilver ked af det når nogle kalder mig Stenalder eller uviende, det er jeg ikke.
Men du er velkomme til at følge med. Måske har snowball opgivet : )
VH
Koden
Avatar billede snowball Novice
30. september 2003 - 15:47 #28
Nope, der manglede bare lige et + ;)

sqlString := 'SELECT * FROM tabel1 WHERE eksemplet = ''' + Edit1.Text + '''';

Snowball
Avatar billede koden12 Nybegynder
30. september 2003 - 16:06 #29
Hej igen, ja jeg var ved at gætte for jeg Fandt denne her :


procedure TFactuur3Form.Edit1Change(Sender: TObject);
begin
    try
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;

    if ComboBox1.Text = 'Achternaam' then
      ADOQuery1.SQL.Add('select * from koerier where koerierachternaam like "'+Edit1.Text+'%"')
    else if ComboBox1.Text = 'Adres' then
      ADOQuery1.SQL.Add('select * from koerier where koerieradres like "'+Edit1.Text+'%"')
    else if ComboBox1.Text = 'Postcode' then
      ADOQuery1.SQL.Add('select * from koerier where koerierpostcode like "'+Edit1.Text+'%"')
    else if ComboBox1.Text = 'Woonplaats' then
      ADOQuery1.SQL.Add('select * from koerier where koerierwoonplaats like "'+Edit1.Text+'%"')
    else if ComboBox1.Text = 'Telefoon' then
      ADOQuery1.SQL.Add('select * from koerier where koeriertelefoon like "'+Edit1.Text+'%"');

    ADOQuery1.Open;
    ADOQuery1.Sort := 'koerierachternaam ASC, koeriervoorletters ASC';

    except on e:exception do
    showmessage('HELLLLLUP, ik heb de volgende fout: ' + e.message);
    end;
end;
Avatar billede janbb Juniormester
30. september 2003 - 21:23 #30
Det er jo ikke mit spm og derfor skal man jo være meget ydmyg, selvom det da er et spm man har haft lyst til stille.Jeg har ikke nogen EDB-uddannelse og har svært vwed at vurdere om der er nogen alvor i kommentarerne længere, men da problemet interesserer mig vil jeg da gerne spørge ?.En slags kode hvor man i et editfelt formentligt (næppe en combobox ?) kan indtaste en text og så få en grid hvor records med memofelter forekommer- er det overhovedet muligt - eller 'pjatter' I bare ?.
Men 'stenalderkommentar' til koden 12 var såmænd bare en 'parodi' på en gammel
Monty Python sketch, jeg nok med mit fødselsår ikke kan forvente at folk i vore dage kan huske.
Avatar billede koden12 Nybegynder
30. september 2003 - 22:09 #31
Hej Janbb Det er helt fint med spøg for mig, meget fint..  Jeg husker fint Monty Python ... Jo da den skulle kunne også i en combobox men det , der er intressant syntes jeg var Syntaksen i ADOQuery som mange sidder og piller med for tiden. Det er jo næsten pionær arbejde ad ADO nok vil vinde frem efter hånden som de gamle Delphi udgår og måske Borland opgiver den gamle Paradox.
Jeg har kun fået en af de mange forsøg i ADO Dataset til at virke, man skal holde tungen lige i munden kan jeg sige dig og være opmærksom hvem man udnævner til Server og hvem til client ellers kan man pille hele natten..
Under min jagt !!! fandt jeg også en til din Combobox vil du have den ?
ADODataSet1.first;
DBComboBox1.Items.Clear;
while not ADODataSet1.eof do
begin
DBComboBox1.Items.Add(ADODataSet1.FieldValues['Name'];
ADODataSet1.next;
end
Du kan selv slette DB....
Så det er muligt men for f***** det tager TID !!!!!!!!!!!!!!!
VH
Koden12
Avatar billede snowball Novice
30. september 2003 - 22:20 #32
koden12: Alt tager tid når man først skal finde ud af hvordan man gør ;)

Snowball
Avatar billede moller2567 Nybegynder
30. september 2003 - 22:24 #33
Ja det er ret besværligt, men der er en meget nemmere løsning. Når der snakkes memo-felter, så går jeg ud fra, at det er en paradox-database. Der findes et sæt komponenter til Delphi (InfoPower, der desværre koster penge) men der er både tabel og gridkomponenter. Gridkomponenten kan bl.a. vise memo-felter. Der er sågar en søgekomponent (og der kan søges i memo-felter). Derudover er der en QBE-komponent, så man kan anvende de qbe'er man har lavet i Paradox i stedet for SQL.

http://www.woll2woll.com
Avatar billede koden12 Nybegynder
30. september 2003 - 22:47 #34
Ham Snowball : ) har er bare så fræk : )  HA  den var je selv ude om..
Jeg har ikke fået den her til at virke endnu.. den laver ingen fejl... men den laver heller ikke noget ?

strSQL: String;

  strSQL := 'SELECT * FROM Table1 WHERE Field1 = '''+Edit1.Text+'''';
  ADODataSet1.Close;
  ADODataSet1.CommandText := strSQL;
  ADODataSet1.Open;

Moller2567 Næ det er nu ADO vi snakker om... Jo da man kan nok købe sig ud af det hele.
Men man må også kunne KODE sig ud af det..
Eller ?
VH
Koden12
Avatar billede stoney Nybegynder
01. oktober 2003 - 00:31 #35
janbb> vil du fri-tekst søge i memo felter eller have memo
felter vist i en grid ?

Stoney
Avatar billede janbb Juniormester
01. oktober 2003 - 04:14 #36
stoney: Jeg forestillede mig - lissom det er gængs med søgemaskiner på www - at man søgte efter et ord/streng i tabellens memofelter og at de memofelter hvor ordet/strengen forekom i blev listet fx i en dbgrid.Ikke nødvendigvis at memofelterne blev vist, men at de rekord der indeholdt memofelter med det ord man søgte efter blev listet.Man kan saa åbne memoen og finde ordet forhåbentligt, hvis det ikke er kæmpestore textfiler.Jeg skal give et eksempel fra www skal lige finde det så kommer det i en ny kommentar.Jeg kan godt lave nyt spm med 200 points hvis nogen har nogen forslag.
Avatar billede janbb Juniormester
01. oktober 2003 - 04:24 #37
Hvis man fx i PubMeds søgemaskine skriver: intubation  så kommer en liste
med 1163 articler hvor ordet er nævnt (det er et ret almindeligt ord i medicinske artikler), men selvom det er store forskelle er ideen nogenlunde
præcis i forhold til det jeg havde i tankerne engang: At lave en database med nogle vejledninger anbragt i memoer (ADO eller paradox) og selvfølgelig med et indexfelt til at finde rundt i det helt grove overskriftsmæssige, men hvis man ikke kunne finde det man lige søgte så var der altså en mulighed for at skyde sig ind på relevante oplysninger ved at søge i råtekst.Forstår du nogenlunde
hvad jeg mener ?.
Avatar billede janbb Juniormester
01. oktober 2003 - 04:25 #38
Avatar billede janbb Juniormester
01. oktober 2003 - 04:33 #39
Og det er altså en offline ting jeg tænker på i første omgang.Selvom jeg synes det er sjovr at prøve at lave noget online engang i mellem kan jeg godt se det nok varer adskillige år før online-programmer for mit vedkommende bliver til ret meget andet end lidt sjov med uskrifter og den slags.
Avatar billede janbb Juniormester
01. oktober 2003 - 04:53 #40
Stoney: Jeg fik iøvrigt noget herligt kode for en tid siden (måned ?) - var det dig ? (det må jeg lige tjekke) hvor alle memofelterne blev skrevet sammen til en stor tekstfil.Det kunne man måske osse bruge som udgangspunkt til en søgning ? Jeg skal ikke kunne sige hvad der er smartest eller lettest jeg har bare en fornemmelse af - som moller2567 osse skriver at - det nok godt kan lade sig gøre.
Avatar billede snowball Novice
01. oktober 2003 - 09:02 #41
koden12: I det eksempel du skriver henter du jo bare dine data, men du viser dem ikke nogen steder !? Hvordan ser hele din procedure/funktion ud som henter og viser dine data ?

Snowball
Avatar billede koden12 Nybegynder
01. oktober 2003 - 10:30 #42
var
  strSQL: String;

  strSQL := 'SELECT * FROM Table1 WHERE Field1 = '''+Edit1.Text+'''';
  ADODataSet1.Close;
  ADODataSet1.CommandText := strSQL;
  ADODataSet1.Open;

While Not ADODataSet1.Eof Do Begin
ListBox1.Items.Add(ADODataSet1.FieldByName('Field1').AsString);
ADODataSet1.Next;


********
Janbb er inde på noget af det rigtige. Det er mærkeligt at man i et stort Program som Delphi ikke kan lave det man kan på www med ganske almindelig PHP og MySql.
Meget mærkeligt !
VH
Koden12
Avatar billede snowball Novice
01. oktober 2003 - 10:50 #43
koden12: Kan se jeg har glemt en ret vigtig ting i det jeg har skrevet ;/

Gør én af følgende ting:

* Klik på din ADODataSet komponent på din form og i dens Connection property vælger du ADOConnection1

* Lige over din ADODataSet1.Close; linie indsætter du følgende: ADODataSet1.ConnectionString := ADOConnection1.ConnectionString

Ellers får du nemlig slet ikke fat i databasen ;)

Mht. det med at søge som på WWW, så kan man også godt gøre det samme i Delphi. Kan da lige prøve at lave et hurtigt eksempel i kan kigge efter hvis det skulle være !?

Snowball
Avatar billede koden12 Nybegynder
01. oktober 2003 - 11:04 #44
<< Klik på din ADODataSet komponent på din form og i dens Connection property vælger du ADOConnection1<<<<
Det har jeg selvfølgelig gjort..
Men ikke det andet..
VH
Koden12
Avatar billede snowball Novice
01. oktober 2003 - 11:15 #45
Og du er sikker på at det der står i Edit1 også findes i databasen i feltet Field1 ?

Snowball
Avatar billede koden12 Nybegynder
01. oktober 2003 - 11:19 #46
UPS nu virker den fint !!!!! Men forsat IKKE i et MEMO felt...
Det ville være "sexet"  hvis dem der går ind i Listbox og som man klikker på ville vise sig over det hele... Det er vist noget med Bookmark et eller andet..
Jeg ved ikke hvordan jeg skal forklare det.
Når man klikke på en af dem så de bliver blå så kommer den frem som man har klikket på.
Måske er der sådan en i en af mine mange og DYRE (suk) bøger.
VH
Koden12
Avatar billede koden12 Nybegynder
01. oktober 2003 - 11:26 #47
Bookmark
NÆÆ jeg så efter en her men den havde jeg selv oprettet og den var ikke besvaret..
VH
koden12
Avatar billede snowball Novice
01. oktober 2003 - 12:23 #48
janBB/koden12: Har lige lavet et eksempel som i kan prøve at kigge på det. Det er mht. til det med at søge og at søge i memo (hvis jeg ellers har forstået jer rigtigt).

Eksemplet er lavet med udgangspunkt i den side janbb linker til i sit indlæg 01/10-2003 04:25:45.

Eksemplet kan hentes her: http://home1.inet.tele.dk/j-cgeert/www_search.zip

Snowball
Avatar billede koden12 Nybegynder
01. oktober 2003 - 13:40 #49
Hej Snowball, tak for den først og fremmest. Det har jo ikke meget med Delphi at gøre : )  Men SQL er der en masse af.
Snedigt at lægge den memo ind som en del af de søge ord så når de andre ord passer må den i momo også passe.
Sådan som jeg læser den... men...
Jeg er ved at lægge den over så den kan passe ind i min.
Det har du vist prøvet før : )
VH
Koden12
Avatar billede snowball Novice
01. oktober 2003 - 13:51 #50
koden12: Decideret Delphi ting er der rigtig nok ikke helt vildt mange af, men det primære formål med programmet er jo også at gemme og hente ting i en database ;)

Og ja, har prøvet det en del gange efterhånden ;)

Snowball
Avatar billede janbb Juniormester
01. oktober 2003 - 14:36 #51
Det var dog et herligt program snowball.Det er jeg meget taknemmelig for.Nu må jeg studere det nærmere.Jeg lægger points til dig.
Avatar billede koden12 Nybegynder
01. oktober 2003 - 20:17 #52
Mange tak Snowball , du er en frelser...
Vi er dig taknemlig.
Det er jo eftertænksomt at ikke det er helt rene ? Delphi ting der dur. Det giver noget at tænke over.
Det sammen var tilfældet med VB Virsual Basic da den fantes.
Her var det også API32 og SQL der fik det til at virke..
VH
Koden12
Avatar billede koden12 Nybegynder
02. oktober 2003 - 14:43 #53
Hej Snowball, jeg tror du brænder efter at høre hvordan det er gået : )
Fint og dog ikke. Jeg har arbejdet meget med den 2 dage ca. men da jeg ikke som dig laver database med select INSERT into .. og så videre men bruger en ADOTable , så får jeg ikke nogle PARAMETER. VALUE  (eller hvad de hedder) dem med p foran. Det betyder at jeg ikke kan bruge den som den er og har forsøgt at lave den om så den passer til mit.
Det kan jeg imidlertid ikke da jeg ikke er så god til SQL som dig.
Har du nogle forslag er du velkommen.
Hvordan piller jeg ud fra hele databasen alt hvad der står i text1.text se den har jeg lavet men aligevel tager den ikke hele databasen med da mange af dem er memo.
Det har du kommet over ved at sammenligne dem med de andre (mener jeg) og det er smart.
Så den virker ikke helt på denne jeg laver ellers skal jeg lave den helt om sa den ligner din.
VH
koden12
Avatar billede janbb Juniormester
02. oktober 2003 - 16:16 #54
Hej igen koden 12.Jeg er ikke god til ado og det er jo osse svært.Legede lidt med det for ikke så længe siden og som du selv skriver er det jo meget moderne.
Jeg har prøvet at gennemskue hvad der driller dig i dit program og indtil nu er det måske gået lidt sløjt, men jeg fik et lille eks-prg. for nogen tid siden (her på E) og efter nogen tid fandt jeg en nødløsning med en slags 'openset-knap', som man skulle åbne databasen med og så gled noget af det lidt lettere - ikke alt - og slet ikke noget med memoer endnu.Men selv om jeg ikke hved om det er ultra relevant vil jeg lige plante koden:

ADODataSet1.Close;
  ADODataSet1.CommandText := 'SELECT * FROM tabel';
  ADODataSet1.Open;
  Edit1.Text := ADODataSet1.FieldByName('name').AsString;
  Edit2.Text := ADODataSet1.FieldByName('Email').AsString;
  Edit3.Text := IntToStr(ADODataSet1.FieldByName('phone').AsInteger);
  Label5.Caption := IntToStr(adodataset1.FieldByName('id').AsInteger);
  Label6.Caption := IntToStr(adodataset1.RecordCount);
  while not adodataset1.Eof do begin
ListBox1.Items.Add(adodataset1.FieldByName('name').AsString);
ListBox2.Items.Add(adodataset1.FieldByName('Email').AsString);
ListBox3.Items.Add(IntToStr(adodataset1.FieldByName('phone').AsInteger));
    adodataset1.Next;
  end;
Avatar billede koden12 Nybegynder
02. oktober 2003 - 16:57 #55
Hej Janbb
Den ser godt nok smart ud : )  og passer til mit plan ? : )
Den vil jeg teste... Problemet er som du siger, MEMO og da der kun kan være 255 tegn i en tekst løber man jo hurtig tør for alt plads.
Da jeg næsten altid har mere end 255 tegn bruger jeg selvfølgelig MEMO ... mem... så er helvede løs, åbenbart.
VH
Koden12
Avatar billede koden12 Nybegynder
02. oktober 2003 - 22:39 #56
Jeg har testet den Janbb, den er godt nok tæt på, da. Selv Memo lægger den ind MEN uden at skille dem ad. Men det kan jeg vist godt finde ud af ?
Nu mangler den som du allerede har svaret på (måske) nemlig at når man klikker på den der er fundet så dukker den op, DB flytter sig.
Men det er tæt på.
VH
Koden12
Avatar billede janbb Juniormester
03. oktober 2003 - 07:48 #57
Det er meget underholdende at man kan få memoer vist i en listbox, men der er jo kun 1 linie pr. memo ?.
Avatar billede koden12 Nybegynder
03. oktober 2003 - 10:56 #58
Jeps men kunne man klikke på denne ene og databasen så viste den aktuelle mn klikker på så var meget jo løst.
Hvorfor kan MEMO ses i en listbox og ikke i alt det andet ?
Mærkeligt ikke ?
VH
koden12
Avatar billede janbb Juniormester
03. oktober 2003 - 15:31 #59
koden 12:

1) Ja det er nu endelig gået op for mig at når du siger 'så flytter databasen sig' så mener du 'databasen flytter sig' hen til den record der markeres. og
jeg kan godt forstå du synes det ville være spændende.
Jeg har udforsket snowballs program og set at han bruger en 'stringlist' på sit søgefaneblad og det er vældig smart: B.l.a. har jeg sådan et hjul på min mus og når du har klikket på en record m.h.p. at få vist den tilhørende memo kan jeg bruge hjulet på musen og rulle ned gennem stringlisten mens memoerne glider forbi i expresfart.Hypercool.

2) Hvordan fik du færten af at listboxen kunne det ?.Med memoer.Apropo 'tågesnak' så gik de fleste af mine hentydninger som de i hvert fald plejer i lignende spm. i starten af spm. her (mener jeg - det er jo blevet langt efterhånden) på: at man er nødt til at programmere sig ud af det med at få vist en memo når man bruger den type forbindelse til databasen.Det minder nemlig i høj grad om problemet med at få en databaseudskrift på en webside - og der findes noget kode til det, der minder meget i metode om snowballs og som bruges meget i ASP og vel sagtens osse VB, hvor disse
%-tegn indgår hyppigt og nogen der er programmeret til at fungere på samme måde.Jeg kan stirre mig totalt 'blind' på det og rode og rode uden nogensinde (tror jeg) fatte hvordan det er skruet sammen.Har som sagt installeret nogen gratis komponenter fra 'cgiexperten', der kan klare 'jobbet', men det er ikke lisså tilfredsstillende.
Avatar billede janbb Juniormester
03. oktober 2003 - 15:51 #60
3) M.h.t. mine kommentarer om listbox i dit nye spm. må jeg iøvr. melde pas, det er ikke noget jeg har fået til at virke ud over en enkelt gang, hvor jeg vistnok kopierede 'boxen' fra et program (jeg ikke selv havde lavet) til et andet og åbenbart var heldig med at få nogen egenskaber med som jeg ikke selv er i stand til at konstruere fra bunden.Jeg håber nogen Listbox-eksperter melder sig.Synd der var så meget bøvl med at forhøje points til dit spm. (jvf. ref. i næste kommentar) - ellers ville jeg godt have plantet et par hundrede for at stim. til løsning af 'vores' problemer, men nu må jeg hellere 'ta mig i skindet'.Bvdr.
Avatar billede janbb Juniormester
03. oktober 2003 - 15:52 #61
Avatar billede koden12 Nybegynder
03. oktober 2003 - 15:55 #62
Næææ jeg har desværre ikke fået det til at fungerer. Jeg har heller ikke funder et Bookmark i en listbox der får den bestemte data til at komme frem alle de andre steder.
Sådan som jeg læste det er % tegnet et tegn der søger på valgfri eller bare noget der ligner det, hvor [ ] tegnet er til for at udvælge denne specefikt..
ADO kan jo med lethed lave XML tegn direkte fra databasen.
XML kan ses på www.
Men det ved du sikkert nok..
Hvordan man får de XML derover ved jeg ikke...
VH
Koden12
Avatar billede janbb Juniormester
03. oktober 2003 - 16:07 #63
Nej - jeg kender ikke XML ? Kan du ikke gi et mere præcist link ?
Avatar billede janbb Juniormester
03. oktober 2003 - 16:11 #64
- og hvad er det en forkortelse for ?.
Avatar billede janbb Juniormester
03. oktober 2003 - 16:19 #65
Nu har jeg selv slået det op - og somme tider er jeg osse glad for at jeg ikke ved så meget - så har man ikke de problemer.Men jeg kan give dig et par eksempler på det program jeg mest har 'leget med' og osse fået nogen perle-svar på engang imellem her på E.Leder lige.
Avatar billede janbb Juniormester
03. oktober 2003 - 16:24 #66
Angelod kalder der 'Open Arrey Constructors': lidt tung læsning for mig.

http://www.eksperten.dk/spm/316081
Avatar billede janbb Juniormester
03. oktober 2003 - 16:39 #67
Hvis vi skal 'slå pjalterne sammen' i det her project bliver vores problem altså at formulere et spørgsmål, der var forståeligt nok til at nogen måske følte sig kaldet til at gi os det rigtige svar ? Vi vil have:
'Vis en Memo udfra et valg i en listbox'
Listboxen viser felter fra en (helst) ADO -database.
Memoen skal vise memofeltet i databasen.
Jeg kan godt prøve ?.
Avatar billede koden12 Nybegynder
03. oktober 2003 - 18:51 #68
unit MyBase2Form;

interface

uses
  SysUtils, Types, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, DBGrids, DB, DBClient, {MidasLib,} ComCtrls;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    cds: TClientDataSet;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    DBGrid1: TDBGrid;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  if not FileExists (cds.FileName) then
    cds.CreateDataSet;
  cds.Open;
  cds.MergeChangeLog;
  cds.LogChanges := False;
  Memo1.Lines.Text := StringReplace (
    Cds.XMLData, '>', '>' + sLineBreak, [rfReplaceAll]);
end;

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
  cds.IndexFieldNames := Column.Field.FieldName;
end;

end.

Den er nem, du laver en test laver 2 sider på din form med en tabbelTab et eller andet.
En DBGrid
og en ClientDataset og en memo på den anden side..
Når du har skrevet noget Vil det blive gengivet i XML i Memo..
MEN den memo skal jo have forbindelse til en Browser og det ved jeg ikke noget om hvordan man gør.
VH
Koden12
Avatar billede koden12 Nybegynder
03. oktober 2003 - 18:56 #69
Nåååår du spørge hvad XML er for noget ! Det er Microsoft svar på ASP eller HTML eller MySql og PHP og de der.. sprog.. minder noget om HTML ... måske ...
De har fået det lavet til en standart (ca) og hvis du fx har word2000 og gemmer dit word dokument i det de kalder HTML så vil den lave XML ud af det.
VH
Koden12
Avatar billede koden12 Nybegynder
03. oktober 2003 - 19:00 #70
Ja jeg kan heller ikke rigtig formulerer det.. du har nok ret..
ADO tabellen viser en række at felter i en listbox.
Når jeg klikker på en af dem skal resten at databasen
vise de tilsvarenden felter i deres respektive DBEdit og DBMemofelter.
: )
VH
Koden12
Avatar billede koden12 Nybegynder
03. oktober 2003 - 19:24 #71
Jeg fandt din database Delphi til net :  Her :
http://www.dotnetjohn.com/articles/articleid57.aspx

: )

Så fandt jeg noget andet ... mem... er den til VB ?
Den ser men ud men mangler en masse..

'Move to the record selected in the control

Me.RecordsetClone.Findfirst "[ID] = " & Me![ComboOrListboxName] Me.Bookmark = Me.RecordSetClone.Bookmark

Den må kunne gør det..
De andre er sløve : )
VH
Koden12
Avatar billede janbb Juniormester
04. oktober 2003 - 08:40 #72
jo jeg har osse spekuleret i nogen andre boxtyper, men har ikke haft så meget held udover at man osse kan få memoer ind i en combobox.Og så fandt jeg i hjælpen i Delphi denne:
StrVar := DBLookupListBox1.SelectedItem;
jeg dog ikke er blevet afprøvet, men så osse en ting om comboboxe:
combobox1.items.text men den tager nok hele rækken hvis man ikke med noget mousedown kan fange en listbox1.itemindex parameter.Jeg tror jeg giver op hvis der ikke i løbet af nogen dage kommer noget opmuntrende.
Avatar billede koden12 Nybegynder
04. oktober 2003 - 10:40 #73
Jeg giver op.
Fik du prøvet den XML ?
Lad det ligge jeg finder på noget andet.
Men tak for din interesse.
VH
Koden12
Avatar billede koden12 Nybegynder
04. oktober 2003 - 10:58 #74
Janbb
HOV !!!! Boris har sendt en der virker, fortvivl ikke ... se den : )
VH
Koden12
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