Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi mit ADO XML-Datei in Tabelle kopieren! Hilfe (https://www.delphipraxis.net/98868-mit-ado-xml-datei-tabelle-kopieren-hilfe.html)

marabu 1. Okt 2007 06:10

Re: mit ADO XML-Datei in Tabelle kopieren! Hilfe
 
Guten Morgen,

schau mal in diesen Thread - da findest du die Methode SpecialCells und auch noch eine Alternative.

Freundliche Grüße

EDIT: es hat das l am Ende von .html gefehlt...

legionen 1. Okt 2007 06:38

Re: mit ADO XML-Datei in Tabelle kopieren! Hilfe
 
Hi! wieder mal DANKe für deine schnelle Antwort.... sieht so aus, als wärst du hier eine echt ständige Größe :)

aber :( wenn ich dem Link folgen will, dann kommt immer die Meldung:

Fehler: 404 - Datei nicht gefunden

Die Seite, die Du aufrufen wolltest, ist auf diesem Server nicht vorhanden.
Du kannst das Forum über einen der Links im Seitenkopf ansteuern.

......... ich werde es heute abend nochmal probieren, aber sieht erstmal so aus, als würde das nicht funktionieren :(

Über einen schon funktionierenden Algorithmus *räusper* würde ich mich aber auch freuen :P

Bis dann!

peschai 1. Okt 2007 06:53

Re: mit ADO XML-Datei in Tabelle kopieren! Hilfe
 
Hallo,
Mich würde noch eine Kleinigkeit am Rande hier interessieren:
Wäre die ursprüngliche Fehlermeldung eventuell nicht aufgetreten wenn er anstelle
Delphi-Quellcode:
AdoTable1.Fields.FieldByNumber(1).Text;
das folgende benutzt hätte
Delphi-Quellcode:
AdoTable1.Fields.FieldByNumber(1).AsString;

marabu 1. Okt 2007 08:28

Re: mit ADO XML-Datei in Tabelle kopieren! Hilfe
 
Hallo Peter,

Zitat:

Zitat von peschai
... Wäre die ursprüngliche Fehlermeldung eventuell nicht aufgetreten ...

der Zugriff über Text ist äquivalent zu AsString, solange kein event handler für OnGetText() bereit gestellt wird.

Ich habe ein wenig getestet und festgestellt, dass der Treiber einem fast die ganze Arbeit abnimmt:

Delphi-Quellcode:
procedure ReadCells(grid: TStringGrid; xlData: TDataSet);
var
  i: Integer;
begin
  with xlData do
    while not Eof do
    begin
      for i := 0 to Pred(xlData.FieldCount) do
        grid.Cells[i, Pred(RecNo)] := Fields[i].AsString;
      Next;
    end;
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  DataSource.DataSet := ADODataSet;
  ADODataSet.Connection := ADOConnection;
  ADOConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source="test.xls";'
      + 'Extended Properties="Excel 8.0;HDR=Yes";Persist Security Info=False';
  ADOConnection.LoginPrompt := False;
  ADODataSet.CommandType := cmdTable;
  ADODataSet.CommandText := '[data$]'; // Worksheet: data
  ADODataSet.Open;
  StringGrid.RowCount := ADODataSet.RecordCount;
  StringGrid.ColCount := ADODataSet.FieldCount;
  ReadCells(StringGrid, ADODataSet);
  ADOConnection.Close;
end;
Wenn das WorkSheet nur eine Tabelle enthält, dann war es das schon. Andernfalls kann man einfach auf das erste Auftreten einer leeren Zelle reagieren.

Freundliche Grüße

legionen 3. Okt 2007 10:53

Re: mit ADO XML-Datei in Tabelle kopieren! Hilfe
 
VIELEN VIELEN DANK!!!!!!! Es hat endlich funktioniert und ich kann die Excel-Tabelle in meine Delphi-Tabelle übernehmen!!!!! Ich weiß gar nicht was ich sagen soll, aber ihr habt mir den arsch gerettet!!! DANKE!!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz