Autor Beitrag
Das S
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 101

Win XP
D7 Prof
BeitragVerfasst: Do 18.08.05 09:04 
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
Einloggen, um Attachments anzusehen!
Marauder
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 72



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 101

Win XP
D7 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 72



BeitragVerfasst: 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:

ausblenden volle Höhe 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';

(*
Der Nachteil beim Binden an ein DataSet ist das Fehlen von Sortieren oder Filtern !!
Kann man aber auch per SQL !
*)


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');


    // Grid leeren
    DataGrid1.DataSource := NIL;
    DataGrid1.CaptionText := 'DataGrid mit DataSet';
    DataGrid1.GridLineStyle := DataGridLineStyle.Solid ; // oder NONE


    // Grid binden
    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 :

ausblenden volle Höhe 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 101

Win XP
D7 Prof
BeitragVerfasst: Do 18.08.05 19:24 
Oh, vielen Dank. Und wie heißt das Buch ?
Marauder
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 72



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 101

Win XP
D7 Prof
BeitragVerfasst: 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 ?