Hallo.
Ich möchte eine Abfrage auf eine SQL Datenbank machen über Avenue.
Ich habe dazu folgendes Script :
theSQL = SQLCon.Find("Friedhof")
aString = "SELECT dbo.Friedhof.Freidhof_Lage, dbo.Grabfeld.Grabfeld,dbo.Grabstätte.Grab_Bezeichn er,dbo.Grabstätte.Frei, dbo.Grabart.Grabart,dbo.Friedhof.Freidhof_Lage + ' ' + dbo.Grabfeld.Grabfeld + ' ' + dbo.Grabstätte.Grab_Bezeichner AS Schlüssele FROM dbo.Grabstätte INNER JOIN dbo.Grabart ON dbo.Grabstätte.Friedhof_ID = dbo.Grabart.Friedhof_ID AND dbo.Grabstätte.Grabart_ID = dbo.Grabart.Grabart_ID RIGHT OUTER JOIN dbo.Friedhof ON dbo.Grabstätte.Friedhof_ID = dbo.Friedhof.Friedhof_ID LEFT OUTER JOIN dbo.Grabfeld ON dbo.Grabstätte.Grabfeld_ID = dbo.Grabfeld.Grabfeld_ID"
theVTab = VTab.MakeSQL(theSQL, aString)
if (theVTab.HasError.not) then
myTable = Table.Make(theVTab)
av.GetProject.AddDoc(myTable)
myTable.GetWin.Open
else
MsgBox.Info("Fehler bei der SQL-Verbindung","")
end
Das klappt auch soweit. Eine Tabelle wird angelegt. Nur fehlt mir in der Tabelle das letzt Feld Schlüssele. Wenn ich diese Abfrage über "Add Database Table" ausführe, wird mir auch das letzt Feld angezeigt. Woran kann das liegen ? Bitte um Hilfe
MFG
Sebastian
Ich möchte eine Abfrage auf eine SQL Datenbank machen über Avenue.
Ich habe dazu folgendes Script :
theSQL = SQLCon.Find("Friedhof")
aString = "SELECT dbo.Friedhof.Freidhof_Lage, dbo.Grabfeld.Grabfeld,dbo.Grabstätte.Grab_Bezeichn er,dbo.Grabstätte.Frei, dbo.Grabart.Grabart,dbo.Friedhof.Freidhof_Lage + ' ' + dbo.Grabfeld.Grabfeld + ' ' + dbo.Grabstätte.Grab_Bezeichner AS Schlüssele FROM dbo.Grabstätte INNER JOIN dbo.Grabart ON dbo.Grabstätte.Friedhof_ID = dbo.Grabart.Friedhof_ID AND dbo.Grabstätte.Grabart_ID = dbo.Grabart.Grabart_ID RIGHT OUTER JOIN dbo.Friedhof ON dbo.Grabstätte.Friedhof_ID = dbo.Friedhof.Friedhof_ID LEFT OUTER JOIN dbo.Grabfeld ON dbo.Grabstätte.Grabfeld_ID = dbo.Grabfeld.Grabfeld_ID"
theVTab = VTab.MakeSQL(theSQL, aString)
if (theVTab.HasError.not) then
myTable = Table.Make(theVTab)
av.GetProject.AddDoc(myTable)
myTable.GetWin.Open
else
MsgBox.Info("Fehler bei der SQL-Verbindung","")
end
Das klappt auch soweit. Eine Tabelle wird angelegt. Nur fehlt mir in der Tabelle das letzt Feld Schlüssele. Wenn ich diese Abfrage über "Add Database Table" ausführe, wird mir auch das letzt Feld angezeigt. Woran kann das liegen ? Bitte um Hilfe
MFG
Sebastian
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von KEngelberg am Fr., 04.05.2007 - 00:09
PermalinkDie Datenbankstruktur macht aber einen gekonnten Eindruck. Greifst Du aus AV3 direkt auf einen Oracle DB zu? und hilft dann vielleicht ein serverseitiger View?
(sorry, hätte lieber geantwortet als zu fragen, bin aber zu neugierig)
Klaus
Gespeichert von Sebastian am Fr., 04.05.2007 - 09:33
PermalinkIch habe das Problem jetzt gelöst. Und zwar war es ein datenbankseitiges Problem. Das Feld Grab_Bezeichner war als NVARCHAR definiert. Und ArcView kann damit nicht umgehen. So hat er mir die beiden Felder Grab_Bezeichner und Schlüssele erst gar nicht erzeugt. Als ich die Abfrage über "Add Database Table" durchgeführt hatte, hat er mir die Felder zwar erstellt, nur stand in den Zellen nur "SHAPE". So haben wir dann den Typ NVARCHAR auf VARCHAR umgestellt. Und jetzt funktioniert es. Ich greife direkt auf eine SQL 2005 Datenbank.
Have A Nice Day
MFG
Sebastian