Entwickler-Ecke

Datenbanken - Identifier expected


euro_mode - Di 25.09.12 14:47
Titel: 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

Quelltext
1:
2:
3:
Compiling
Compiler: [Error] (99:1): Identifier expected
Compiling failed


Hab hier auch mal den text, für jede kleine hilfe bin ich im voraus schon sehr dankbar.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
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.


Moderiert von user profile iconMartok: Code- durch Delphi-Tag ersetzt


Gerd Kayser - Mi 26.09.12 01:13

Ich habe den Sourcecode zwar nur überflogen, dennoch sind mir drei Punkte aufgefallen:

1. Es gibt zweimal Try (Zeilen 12 und 62), aber nur einmal ein Except bzw. Finally (Zeile 93).
2. Der Verzeichnisname in Zeile 39 ist falsch. Vor den Laufwerksbuchstaben gehört hier kein Backslash hin.
3. In der vorletzten Zeile fehlt ein "end;".


euro_mode - Mi 26.09.12 08:21

Danke Hr. kayser


Narses - Mi 26.09.12 09:24

Moin und :welcome: in der EE!

user profile iconeuro_mode hat folgendes geschrieben Zum zitierten Posting springen:
Danke Hr. kayser
btw: Wir DUzen uns hier in der EE. :beer:

Richtlinien - Vorwort [http://www.entwickler-ecke.de/richtlinien.html] hat folgendes geschrieben:
Innerhalb der Entwickler-Ecke-Community (kurz "EE") ist es üblich sich zu duzen, du wirst hier also mit "DU" angesprochen.

cu
Narses