Entwickler-Ecke
Andere .NET-Sprachen - Fehler bei erzeugen von typisierter Datenmenge
Das S - Do 18.08.05 09:04
Titel: Fehler bei erzeugen von typisierter Datenmenge
Moin,
foilgende Fehlermeldung erhalte ich wenn ich versuche aus einen sqldataadpater eine datenmenge zu erzeugen (s. Anhang).
Ich habe die 0815-Installation von Delphi 2005 durchgeführt, aber trotzdem bekomme ich diesen Fehler.
Schöne Grüße
Das S
Marauder - Do 18.08.05 09:10
Hallo du S! :wink:
Zeig mal den Sourcecode dazu, so kann man da nichts zu sagen. In der Fehlermeldung steht was
von wegen RaveReports und Interop. Ohne Sourcecode kannst Du da auch den Kaffeesatz lesen...
:shock:
Das S - Do 18.08.05 09:25
Es gibt keinen Sourcecode dazu. Es ist ein leeres Winform, wo ich nur die SQLconnection und den SQLAdapter draufgezogen habe. Mehr nicht. Ich habe aber festgestellt daß er die Datei dataset1.xsd nicht erzeugt aber die dataset1unit.pas. Und genau das meckert er an. In der Projektverwaltung werden mir aber beide angezeigt. Wieso erzeugt er die nicht wenn er sie haben will. Kann ich sie manuell erzeugen ?
Schöne Grüße
Marauder - Do 18.08.05 11:04
Mein Tip: Lass diese Datenkomponenten weg. Die machen einem Wahnsinnig.
Erzeug alles von Hand. Wenn du auf eine Accesdatenbank zugreifen willst, machst es so:
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:
| uses ... System.Data, System.Data.OleDb;
var connSTR : String; dr : OLEDBDataReader; cn : OLEDBConnection; da : OLEDBDataAdapter; cmd : OLEDBCommand; dv : DataView; ds : DataSet;
connSTR :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+application.StartupPath +'\test.mdb';
procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs); begin try cn := OLEDBConnection.Create(connSTR); cmd := OLEDBCommand.Create('Select * from tblPersonen',cn); da := OLEDBDataAdapter.Create(cmd); cn.open(); except on ex: Exception do messagebox.show (ex.message,'Fehler bei Verbindungsaufbau !'); end; ds := DataSet.Create; da.Fill (ds,'tblPersonen');
DataGrid1.DataSource := NIL; DataGrid1.CaptionText := 'DataGrid mit DataSet'; DataGrid1.GridLineStyle := DataGridLineStyle.Solid ;
DataGrid1.setDataBinding (ds,'tblPersonen'); DataGrid1.DataSource := ds; DataGrid1.DataMember :='tblPersonen' |
für den SQLServer ist es praktisch gleich, du nimmst nur SQL als präfix anstatt OLEDB bei denen hier :
dr : OLEDBDataReader;
cn : OLEDBConnection;
da : OLEDBDataAdapter;
cmd : OLEDBCommand;
Beispiel :
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:
| uses ... System.Data,System.Data.SqlClient;
Procedure GetDR (var dr:SQLdatareader;SQL:String;var conn : SQLconnection); var cmd : SQLCommand; begin conn := SQLConnection.create('Server=icecube;Initial Catalog=Northwind;Integrated Security=true'); try cmd := SQLCommand.Create(SQL,conn); conn.open(); dr :=cmd.ExecuteReader (); except on ex: Exception do messagebox.show (ex.message,'Fehler bei Verbindungsaufbau !'); end; end;
Procedure LoadListView (lView : ListView;SQL :String); var item1: ListViewItem; SubItem: ListViewItem.ListViewSubItem ; a : integer; lvwCol : ColumnHeader; dr : SQLDatareader; cn : SQLConnection; begin LView.Clear; LView.View := View.Details; LView.FullRowSelect := True;
getDR (dr,SQL,cn);
if dr.read = True then begin with LView.Columns do begin for a := 0 to dr.FieldCount -1 do begin lvwCol := ColumnHeader.Create; lvwCol.Text := dr.GetName(a).ToString; Add (lvwCol); end; end; end; getDR (dr,SQL,cn);
while dr.read do begin item1 := ListViewItem.Create(dr.GetValue(0).toString.trim, 0); for a := 1 to dr.FieldCount -1 do begin SubItem := item1.SubItems.Add(dr.GetValue(a).toString.trim); end; LView.Items.Add(item1); end; for a := 0 to LView.Columns.Count -1 do begin try LView.Columns[a].Width := -2; except end; end; dr.close; cn.close; end;
procedure TWinForm.TWinForm_Load(sender: System.Object; e: System.EventArgs); Begin LoadListView (ListView1,'Select * from Shippers'); end; |
Schau das du hier :
conn := SQLConnection.create(
'Server=icecube;Initial Catalog=Northwind;Integrated
Security=true');
deinen Server entsprechend einbaust und deine Security einstellst.
Mit dieser Methode bist du viel freier als mit den Komponenten. Apropos. Die Beispiele
sind aus meinem Buch, kommt im Oktober auf den Markt... :wink: da steht alles über
Delphi und .Net drin, lauter Beispiele und Lösungen...
Gruß
Herby
Das S - Do 18.08.05 19:24
Oh, vielen Dank. Und wie heißt das Buch ?
Marauder - Do 18.08.05 21:56
Delphi goes .NET
'Rezepte und Lösungen für Delphi 2005 mit .NET'
wird etwa zum 10 Oktober überall erhältlich sein.
Der Verlagstermin ist der 7 Oktober.
Das S - Fr 19.08.05 06:49
Gut, aber ich muß nochmal was fragen:
Ich habe in Dreamweaver eine reine html-Seite entworfen und möchte diese jetzt in Delphi einlesen und dort weiterbearbeiten und eine asp.net draus fummeln. Ich kriege es aber nicht hin, die html Seite mit Stylesheets zu importieren. Kann mir einer sagen wie das funzt ?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!