Avatar billede madshenrik Nybegynder
06. februar 2001 - 12:27 Der 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å?.

Mads
Avatar billede martinlind Nybegynder
06. februar 2001 - 12:32 #1
Gå ind og lave felt-def. om så feltet kan indeholde flere tegn ( max. 255 ) eller lav det om til et Blob-felt.

/Martin
Avatar billede pstric Nybegynder
06. februar 2001 - 12:34 #2
Jeg går ud fra at det er en Paradox tabel du har lavet. Du kan bruge et Memo felt (M i kolonnen Type) til at gemme tekst af en vilkårlig længde.

Du skal angive en længde, men det fortæller bare, hvor meget af teksten, der skal gemmes i tabellen. Resten gemmes i en separat fil.
Avatar billede delphi Nybegynder
06. februar 2001 - 12:43 #3
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
Avatar billede delphi Nybegynder
06. februar 2001 - 12:44 #4
Det kunne vist godt gå for et svar....
Avatar billede madshenrik Nybegynder
06. februar 2001 - 12:54 #5
Forsøger med at lave et blobfelt da jeg ikke kan holde mig under de tilladte 255 tegn.

Mads
Avatar billede delphi Nybegynder
06. februar 2001 - 13:04 #6
Ok, men du har vist fået dit svar.  Luk spørgsmålet...
Avatar billede pstric Nybegynder
06. februar 2001 - 13:09 #7
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.
Avatar billede madshenrik Nybegynder
06. februar 2001 - 15:18 #8
Det er paradox så bare rolig pstric.

Mads
Avatar billede madshenrik Nybegynder
06. februar 2001 - 15:29 #9
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 ¨‚&.

Mads 
Avatar billede pstric Nybegynder
06. februar 2001 - 15:37 #10
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.
Avatar billede madshenrik Nybegynder
06. februar 2001 - 15:50 #11
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.

Mads
Avatar billede pstric Nybegynder
06. februar 2001 - 15:57 #12
QueryIndtast.ParamByName(\'DETAIL\').ASMemo :=(Memodetail.Text);

Prøv det.
Avatar billede pstric Nybegynder
06. februar 2001 - 15:57 #13
Eller måske skal du bruge MemoDetail.Lines;
Avatar billede madshenrik Nybegynder
06. februar 2001 - 16:23 #14
Mange tak for hjælpen alle sammen. Det her virker umiddelbart fint pstric.
QueryIndtast.ParamByName(\'DETAIL\').ASMemo :=(Memodetail.Text);


Mads
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

IT-JOB