![]() |
Datenbank: MySQL • Version: 2005 • Zugriff über: ?
Identifier expected
hallo zusammen,
bin ein totaler neuanfänger was das programmieren angeht. mein problem besteht darin; es soll eine abfrage von der datenbank erstellt werden, die dann in eine excel datei geschrieben wird. Am ende kommt diese fehlermeldung
Code:
Hab hier auch mal den text, für jede kleine hilfe bin ich im voraus schon sehr dankbar.
Compiling
Compiler: [Error] (99:1): Identifier expected Compiling failed
Code:
program abfrage;
const CRLF = #13+#10; var XlsApp, XlsWorkBook, XlsWorksheet: variant; cNETTOEINZEL,nAbZeile,i:integer; cGUID,cAUFNR,cBestellt,Verzeichnis,Dateiname,cARTNR:string; nBestellt,nNettoEinzel:currency; oDialog:TUDFDialog; begin oDialog := TUDFDialog.Create; try oDialog.AddField('AUFNR.','AUFNR.',ftString,True,True,'',0); if oDialog.Execute then begin cAUFNR := oDialog.GetFieldValue('AUFNR.'); oQuery.SQL.Text := 'SELECT kopfguid FROM kopf WHERE UPPER(AUFNR) LIKE UPPER ('+quotedstring(cAUFNR)+')'; oQuery.Open; if oQuery.RecordCount = 1 then begin cGUID := oQuery.Fields.Fields[0].AsString; end else if oQuery.RecordCount > 1 then begin ShowMeldung('Mehr als 1 Ergebnis zu dieser Rechnungsnummer'); exit; end else begin ShowMeldung('Rechnungsnummer: '+cAUFNR+' nicht gefunden!'); exit; end end; Verzeichnis := '\D:\test\'; Dateiname := '123.xls'; // Geschrieben wird ab Zeile 16 (in der ersten stehen die Überschriften) nAbZeile := 16; // Wir starten Excel im Hintergrund Dateiname := Verzeichnis + Dateiname; // Existiert die Datei? if not FileExists(Dateiname) then begin Dateiname := OpenDialog('Excel *.xls|*.xls','Exportdatei wählen'); if not FileExists(Dateiname) then begin ShowMeldung('Die Datei : '+Dateiname+' ist nicht vorhanden!'); exit; end; end; XlsApp := CreateOleObject('Excel.Application'); try XlsApp.Visible := False; XlsWorkbook := XlsApp.Workbooks.Open(Dateiname, True, False); XlsWorkbook := XlsApp.Workbooks[1]; XlsWorksheet := Xlsworkbook.Worksheets[1]; //(postyp in (1,2)) AND oQuery.SQL.Text := 'SELECT ARTNR, Bestellt, NETTOEINZEL,zeilenid FROM position WHERE kopfguid = '+quotedstring(cGUID)+' ORDER BY zeilenid'; oQuery.Open; while not oQuery.eof do begin cARTNR := oQuery.Fields.Fields[0].Asstring; nBestellt := oQuery.Fields.Fields[1].AsCurrency; nNETTOEINZEL := oQuery.Fields.Fields[2].AsCurrency; //writeln(cARTNR); i:= nAbZeile; XlsWorksheet.Cells[i,'A'].Value := cARTNR; XlsWorksheet.Cells[i,'B'].Value := nBestellt; XlsWorksheet.Cells[i,'C'].Value := nNETTOEINZEL; oQuery.Next; i:= i +1; end; //application.processmessages; finally begin oDialog.Free; end; end; end. |
AW: Identifier expected
Moin,
die Zeilennummern währen nicht schlecht. Ist hinter dem finally das Problem? Da setzt man kein "begin". Verschiebe das alles lieber in eine Funktion und halte den Aufruf ganz unten knapp. |
AW: Identifier expected
Die uses-Klausel fehlt wohl auch, die ganzen Datentypen inkl. Dialog sind ja kaum in System.pas deklariert.
|
AW: Identifier expected
Zitat:
Zitat:
|
AW: Identifier expected
Deddy meint, dass Delphi keine Sachen wie TUDFDialog kennt, ohne entsprechende Unit. Auch für Zugriffe auf OLE-Objekte müssen entsprechende Units eingebunden werden. Weiterhin fehlt in deinem Code zB auch die Deklaration für oQuery.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz