Du versuchst aus der aktuellen Datenbank auf Tabellen einer anderen zu verweisen. Das geht unter PostgreSQL(zumindest bis 8.3.5) nicht. Die neue 8.4 soll das aber können, AFAIR.Code:INSERT INTO MyDatabaseName.public.MyTableName (id, ...
Gruß Uwe
Hallo!
Wir arbeiten hier mit .Net/C# auf ODBC Connection. Mit Mysql und MsSqlServer funktioniert unser Projekt ohne Probleme aber mit PostgreSql bekomme ich obige Fehlermeldung!
Wo könnte das Problem liegen?
Obiges Problem tritt auf bei folgendem vorgehen:
1. DataTable dataTable = myDataSet.GetDataTable(this.TableNameSQL);
2. DataRow dataRowNew = dataTable.NewRow();
3. set values into new datarow
4. dataTable.Rows.Add(dataRowNew);
5. myDataAdapter.Update(dataRowNew); <- ERROR [0A000] ERROR: cross-database references are not implemented: "MyDatabaseName.public.MyTableName";
Das InsertCommand sieht wie folgt aus:
INSERT INTO MyDatabaseName.public.MyTableName (id, ...
Randbedingungen:
myDataAdapter = new OdbcDataAdapter("Select * From " + tableName", connection as OdbcConnection);
DbCommandBuilder tableSpecificSqlCommandBuilder = new OdbcCommandBuilder(myDataAdapter as OdbcDataAdapter);
myDataAdapter.InsertCommand = tableSpecificSqlCommandBuilder.GetInsertCommand();
myDataAdapter.UpdateCommand = tableSpecificSqlCommandBuilder.GetUpdateCommand();
myDataAdapter.DeleteCommand = tableSpecificSqlCommandBuilder.GetDeleteCommand();
myDataAdapter.FillSchema(myDataSet, SchemaType.Mapped, tableName);
myDataAdapter.Fill(myDataSet, tableName);
Hoffe auf baldige Hilfe
Danke und Gruß
J.R.
Du versuchst aus der aktuellen Datenbank auf Tabellen einer anderen zu verweisen. Das geht unter PostgreSQL(zumindest bis 8.3.5) nicht. Die neue 8.4 soll das aber können, AFAIR.Code:INSERT INTO MyDatabaseName.public.MyTableName (id, ...
Gruß Uwe
Have a lot of fun!
Nein, 8.4 kann das auch nicht.
PostgreSQL kann schon Schemas, damit erreicht man das gleiche. Eine Datenbank ist eine logisch getrennte Einheit, da möchte man eigentlich nicht kreuz und quer drauf zugreifen können.
Btw, Advanced Server von EnterpriseDB kann das, weil Oracle das kann ...
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Hallo Uwe,
das Insert Statement wird automatisch vom SqlCommandBuilder aus dem Adapter und der Connection erzeugt und sollte doch auch so passen, Oder?
Wie sollte denn das "Normale" Insert Statement lauten?
Einfach :???Code:INSERT INTO MyTableName (id, ...
Und wenn ja, wie erreiche ich das im DataAdapter.InsertCommand dieses dann auch steht?
Gruß
Jan
Hallo ads,
kannst Du das bitte mit dem Kreuz und Quer mal genauer erläutern?!
Ich beabsichtige ja nur eine neue Zeile in die Tabelle zu schreiben. Und diese Tabelle (samt Inhalt) wurde deshalb vorher in ein Dataset geschrieben, damit ich eben nicht "Kreuz und Quer" auf die DB zugreifen muß, sondern direkt auf dem Dataset auf die entsprechende Tabelle ein NewRow absetzen kann!
Gruß
Jan
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Hallo,
Nun, eine Datenbank ist eine in sich geschlossene Einheit. Wer sich zu einer Datenbank verbindet oder diese wechselt, muss das gesamte Procedere der Anmeldung neu durchlaufen. Also möchte man eigentlich auch nicht, dass Anfragen über mehrere Datenbanken hinweg funktionieren.
Wenn Daten logisch zusammengehören, packt man die in eine Datenbank. Wenn Daten nicht zusammengehören, sind auch keine Anfragen über Datenbankgrenzen hinweg notwendig.
Tja, dein Framework macht dort irgendwo *censored*Ich beabsichtige ja nur eine neue Zeile in die Tabelle zu schreiben. Und diese Tabelle (samt Inhalt) wurde deshalb vorher in ein Dataset geschrieben, damit ich eben nicht "Kreuz und Quer" auf die DB zugreifen muß, sondern direkt auf dem Dataset auf die entsprechende Tabelle ein NewRow absetzen kann!
Woran genau das liegt, weiß ich nicht, sorry.
Es bestätigt mich nur wieder darin, dass High-Level Frameworks grundsätzlich mehr Probleme erzeugen als sie lösen.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen