06. februar 2001 - 12:27Der er
11 kommentarer og 3 løsninger
Database spørgsmål
Jeg har lavet et database program nu igennem længere tid men kan her bagefter se at en del af det jeg har lavet ikke er optimalt. Problemet er at jeg har brugt borlands egen database desktop, hvori jeg har lavet en tabel der bl.a. indeholder en colonne der skal gemme en længere tekst men det længste jeg kan gemme er tegn. Findes der en måde man kan øge dette antal tegn på?.
Database desktop er et rigtigt godt program til at oprette tabeller. Bruger det selv.
Du har to oplagte muligheder: 1: Enten laver du en ny tabel, hvor du anvender en andet field type, fx. Memo eller Bytes (Blob). God løsning hvis du skal gemmme mange tegn, dvs. mere end 255.
2: Du ændrer maksimalt tilladte længde, god løsning hvis du kan holde dig under 255 tegn.
Det sidste gør du på følgende måde: 1: Vær sikker på at din tabel ikke er åben nogen steder. Dvs. Du har ikke kørende versioner af din applikation (hverken dig eller andre) og du har ikke Delphi kørende med tabellen kørende som active/open. 2: Start Database desktop og load tabellen ind. 3: Vælg menu punktet Table -> Restructure. 4: Du kan nu lave om på din tabels struktur, men vær opmærksom på at du evt. mister data. Fx. hvis du ændrer forkorter en tilladt strenglængde, fjerner en kolonne (field) eller ændrer fra. fx. streng til number.
Delphi ved at loade din tabel ind i Database desktoppen
Rolig delphi, lad ham dog lige finde ud af, om han helst vil bruge blob eller memo. Det er jo skide træls hvis han skal til at oprette et nyt spørgsmål bare for at få uddybet svaret senere.
Han har jo heller ikke fortalt hvilken database han bruger, og det kan være at det er en eller anden obskur ting, der enten ikke kan anvende blob eller memo felter.
Nu har jeg ændret formattet til blob/memo men det ser stadig mystisk ud når jeg over skrider de tilladte 255 tegn 240 i memo. hvordan kan det være. I stedet for at skrive teksten skriver den noget i denne stil ¨‚&.
Prøver du stadig at gemme som et tekst felt? Brug en DBMemo i stedet for en DBEdit. I en DBGrid bliver et memofelt bare vist som {MEMO} eller noget i den stil.
Jeg gemmer på følgende måde ved hjælp af sql. QueryIndtast.Close; QueryIndtast.sql.Clear; QueryIndtast.sql.add(\'insert into Notatbase(Overskrift, Nogleord, Detail) values (:OVERSKRIFT, :NOGLEORD, :DETAIL)\'); QueryIndtast.ParamByName(\'OVERSKRIFT\').ASSTRING :=(Editoverskrift.text); QueryIndtast.ParamByName(\'NOGLEORD\').ASSTRING := (Editnogleord.TEXT); QueryIndtast.ParamByName(\'DETAIL\').ASSTRING :=(Memodetail.Text); QueryIndtast.ExecSQL;
hvor Memodetail er af typen memo. Teksten bliver vist i en richedit. Og virker også fint så længe man ikke går ud over de tilladte tegn.
Mange tak for hjælpen alle sammen. Det her virker umiddelbart fint pstric. QueryIndtast.ParamByName(\'DETAIL\').ASMemo :=(Memodetail.Text);
Mads
Synes godt om
Ny brugerNybegynder
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.