Avatar billede mr_green Nybegynder
12. juni 2001 - 10:00 Der er 21 kommentarer og
1 løsning

DB Udtræk skrives til text fil ????

Jeg har et program hvor jeg trækker noget ud fra en Database med en Query og smider det ned i en DBGrid, men jeg vil gerne have det skrevet til en fil. Hvordan gøres dette??

--Christian
Avatar billede martinlind Nybegynder
12. juni 2001 - 10:07 #1
Manuelt, eller som en komma-fil
Avatar billede mr_green Nybegynder
12. juni 2001 - 10:12 #2
Manuelt :-)
Avatar billede pellelil Nybegynder
12. juni 2001 - 10:15 #3
Du kan vælge at bruge en MemoryTable der har save/load faciliteter eller MIDAS\'s ClientDataSet !?
Avatar billede mr_green Nybegynder
12. juni 2001 - 10:33 #4
Hvad gør MIDAS\'s ClientDataSet og hvor kan man finde den?
Avatar billede pellelil Nybegynder
12. juni 2001 - 11:40 #5
Hmmmm, jeg er faktisk ikke klar over om du skal \"op i\" en Enterprise før du har MIDAS med eller om den også finde i D5 Developer udgaven. Men HVIS du har MIDAS i din Delphi så kan ClientDataSet bruges til formålet.

MIDAS er egentlig beregnet på at din applikation \"snakker samme med\" (evt. via internette) med en Applikations server (som igen \"snakker sammen med\" en database server). MIDAS\'s ClientDataSet har dog den fordel at data kan skrives til/hentes fra en ekstern fil: \"EtEllerAndetClientDataSet.LoadFromFile(NavnPaaFilen);\".

Hvis ikke du har en MIDAS så kan du som nævnt (med mindre du selv vil programmere det) brugen en eller anden MemoryTable. Jeg anvender selv en der hedder TdxMemData, men denne er en dele af et købe produkt (DevExpress). RxLib har en MemoryTable i deres samling (http://www.rxlib.com/), men jeg kan på stående fod ikke huske hvorvidt den kan gemme til/læse fra fil. En rimeligt rost produkt er \"TkbmMemTable\" (http://www.optical.dk/delphi/products.htm).
Avatar billede mr_green Nybegynder
12. juni 2001 - 12:08 #6
Ahh ok jeg har enterprise edition og har fundet den, men det eneste programmet skal er at gemme det jeg får fra databasen i en txt fil eks.


var F: TextFile;
begin
  AssignFile(F, \'fil.txt\');
  Rewrite(F);
  Writeln(F, \'Database udtræk\');
  CloseFile(F);
end;

Jeg ved bare ikke hvordan jeg skal få fat på det fra databasen?

--Christian

Avatar billede martinlind Nybegynder
12. juni 2001 - 12:19 #7
Du kan også bruge en TTable i ASCII mode, og så BatchMove comp.

/Martin
Avatar billede pellelil Nybegynder
12. juni 2001 - 12:31 #8
Personligt tror jeg at jeg ville bruge en MemoryTable. TkbmMemTable er freeware og jeg har ligehentet den (for at se hvad det var jeg foreslog dig <G>). Såvidt jeg kan se har den både save og load til eksterne filer, samt den har en \"overføre fra DataSet\" funktion.

Jeg ville således gøre din query, overflytte alle data til MemoryTabel\'en (et kald) og så er det denne der vises i griden. Når du (eksempelvis) lukker formen så gemmes din MemoryTable til disk.
Avatar billede morten_s Nybegynder
12. juni 2001 - 13:01 #9
Eller brug QReport, den kan eksportere til csv, Excel m.m.
se www.qusoft.com
Avatar billede mr_green Nybegynder
12. juni 2001 - 15:18 #10
Nu har jeg lige siddet og prøvet mig lidt frem med denne her Memory tabel, jeg kan ikke rigtigt få fat på den, hvordan fik du fat på: kbmMemTable det er vel det der Attached to felt der skal bruges til at få fat på ens Query ??

--Christian
Avatar billede pellelil Nybegynder
12. juni 2001 - 15:37 #11
kbmMemTable har en methode der hedder \"LaodFromDataSet\":        procedure LoadFromDataSet(Source:TDataSet; CopyOptions:TkbmMemTableCopyTableOptions);
Avatar billede morten_s Nybegynder
13. juni 2001 - 09:08 #12
Jeg vil nu stadig anbefale dig at se på QReport komponenterne

Nedenstående er fra QReport hjælpen

Filters
Sometimes, instead of printing or displaying it directly, you need to
export data from your database to another format. QuickReport comes
complete with three filter components that let you do this quickly and
easily for their respective formats. Simply drop the export filter onto the
same form as the report, and the file format appears in the drop-down
list of the Save To file dialog in the preview. Registration is automatic,
and you don&#8217;t need to code a thing! (Don&#8217;t worry - you can export a
report programmatically too if you wish &#8211; see below.)
Note that not all printable components are exported by filters.
Specifically, only the contents of the following text-producing
components appear in exported data: TQRLabel, TQRDBText,
TQRExpr, TQRMemo, TQRSysdata and TQRExprMemo.
TQRTextFilter. &#8216;Text&#8217; format: exports the contents of the report in plain
ASCII, using spaces to separate fields.
TQRCSVFilter. CSV format: exports the report as &#8216;Comma Separated
Variables&#8217;. As well as using a comma to separate fields, this filter places
&#8220;double quotes&#8221; around them, which allows you to have commas within
the fields themselves. This format is easily imported into spreadsheets
such as Microsoft Excel. By the way, the component has a Separator
property that specifies the character used to separate the fields. By
default this value is set to &#8216;,&#8217; comma, but it can be changed to match
your requirements.
TQRHTMLFilter. HTML format: exports the report to a HyperText
Markup Language file, as used in web browsers, some emailers, help
systems and many other places.
It is also possible to call filters explicitly from code. This fragment uses
the HTML filter.
quickrep1.ExportToFilter(
TQRHTMLDocumentFilter.Create(\'c:\\report.txt\'));
To use the Text or CSV filters in this way, use the same ExportToFilter
call but instantiate a TQRAsciiExportFilter or
TQRCommaSeparatedFilter object as appropriate.
Avatar billede pellelil Nybegynder
13. juni 2001 - 09:14 #13
morten_s> Hvis ikke mr_green i forvejen bruger QR så vil dette give ET STORT overhead. Jeg har umiddelbart ikke testet det, men skal jeg komme med et kvalificeret gæt vil jeg tro at brugen af QR får EXE-filens størrelse til at stige med 500-800 KB
Avatar billede mr_green Nybegynder
13. juni 2001 - 09:28 #14
pellelil> Jeg har ummidelbart et problem med den der TkbmMemTable den melder fejl i min uses list nå jeg prøver at kompilere det, jeg laver muligvis en fejl når jeg installerer komponenten, jeg følger readme filen men det virker ikke?
Avatar billede pellelil Nybegynder
13. juni 2001 - 09:36 #15
Jeg var heller ikke selv vidre \"forgrint\" over demoprogrammet til TkbmMemTable (men hvad kan man næsten forvente til \"den pris\" <G>). Det endte med at jeg kopierede Compress-unitet (husker ikke dens korrekte navn) over i samme folder som Demoprogrammet.

Muligvis det er samme problem du har? ellers bliver du nødt til at beskrive din fejl NOGET MERE konkret. Jeg skal med det samme sige at jeg ikke selv bruger TkbmMemTable (da jeg som nævnt tidligere benytter en der er en del af et købe produkt), men det jeg har hørt om TkbmMemTable har være MEGET positivt (så umiddelbart kan jeg kun forestille mig at den til fulde kan \"løse problemet\").
Avatar billede mr_green Nybegynder
13. juni 2001 - 09:52 #16
Jeg har lige prøvet med QReporten, og det virkede da umiddelbart rimeligt simpelt jeg fik ihvertfald skrevet til en text fil uden problemer, så jeg takker mange gange for hjælpen,
morten_s får pointene

--Christian
Avatar billede morten_s Nybegynder
13. juni 2001 - 09:56 #17
Og til den nye Delphi 6 er det også muligt at eksportere til Excel ;-)))

Og overheade bliver ca. 300 - 400 kB hvis du har en visuel rapport på med Preview og hele svineriet
Avatar billede pellelil Nybegynder
13. juni 2001 - 09:58 #18
I min bog er 400 Kb MEGET \"bare\" for at kunne skrive til en tekstfil, men så\'n er det nok når man har vært med fra den gang programmerne ikke måtte fylde noget  :-)
Avatar billede morten_s Nybegynder
13. juni 2001 - 10:03 #19
Ja det var tider med Poly-pascal et program kunne maks fylde 64 kB der blev kun genereret COM filer husker du da den kom til at hedde
Turbo 3 hvor vi kunne lave Overlays sikke en fest ?
Avatar billede pellelil Nybegynder
13. juni 2001 - 10:17 #20
hov hov - Anders\'s gode gamle Poly-Pascal kunne også lave overlays. Det var \"tider\" hvor man kunne bruge laaaangtid på at finde ud af hvilke ting der skulle i hvilke overlay filer samt hvilke ting der skulle ligge i \"hoved-programmet\" (streng-formaterings og indtastnings routiner i en overlay fil er ikke tilrådeligt <G>). Som \"database-værktøj\" havde vi Poly-files\" som på KUN 40 sekunder var i stand til at gemme en post med adskillige indexer, og hvis man var heldig kunne man læse den igen.

Nej, prøv så i stedet at lave vægtsystemer i Basic på en bærebar PX-4 (var det HP\'s ?), hvor man skulle have kommunikation (med tilhørende protokooler) op mod eksterne enheder (vægte/relæer) samt overførsel til/fra PC (alt på 16-32 Kb inkl program og data).

Nostangy is not what it used to be  ;-)
Avatar billede martinlind Nybegynder
13. juni 2001 - 10:55 #21
Hvis vi snakker delphi 6 ville det da være dumt at bruge Qr, der skal du da bare benytte MyDatabase og så gemme i en af de mange formater den har.
Avatar billede pellelil Nybegynder
13. juni 2001 - 11:11 #22
Ja men hvor når f...... kommer den f........ Delphi 6  :-(

Jeg beklager min harme, men leveringen af min Delphi 6 Enterprise er netop blevet udsat (for 4. gang) fordi Borland åbentbart ikke er ret hurtige til at fremstille nok CDer (så \"lige nu\" hedder leverings tidspunktet d. 29.6.)
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