+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

DataBinding Unterschied zwischen LL21 und LL25

Hallo,

ich hatte LL21 in Betrieb und dieses wie folgt implementiert:

 Dim command1 As New SqlCommand("SELECT * FROM dbo.Auftrag WHERE dbo.Auftrag.ID=" & iID.ToString, conn)
 Dim command2 As New SqlCommand("SELECT dbo.AuftragLadestellen.*, dbo.AuftragProdukte.* FROM dbo.AuftragLadestellen LEFT JOIN dbo.AuftragProdukte ON dbo.AuftragLadestellen.LadestelleNr = dbo.AuftragProdukte.LadestelleID WHERE (((dbo.AuftragLadestellen.AuftragID)=" & iID.ToString & ") AND ((dbo.AuftragLadestellen.IsLadeort)='True'))", conn)
 Dim command3 As New SqlCommand("SELECT dbo.AuftragLadestellen.*, dbo.AuftragProdukte.* FROM dbo.AuftragLadestellen LEFT JOIN dbo.AuftragProdukte ON dbo.AuftragLadestellen.LadestelleNr = dbo.AuftragProdukte.EntladestelleID WHERE (((dbo.AuftragLadestellen.AuftragID)=" & iID.ToString & ") AND ((dbo.AuftragLadestellen.IsLadeort)='False'))", conn)

 Dim MyCommandDataSetProvider = New DbCommandSetDataProvider
 MyCommandDataSetProvider.AddCommand(command1, "Vorgang") 
 MyCommandDataSetProvider.AddCommand(command2, "Ladestellen")
 MyCommandDataSetProvider.AddCommand(command3, "Entladestellen") 
 MyCommandDataSetProvider.AddRelation("Vorgang2Ladestellen", "Vorgang", "Ladestellen", "ID", "AuftragID")
 MyCommandDataSetProvider.AddRelation("Vorgang2Entladestellen", "Vorgang", "Entladestellen", "ID", "AuftragID")

Unter LL 21 funktioniert das ohne Probleme.
Nun jetzt unter LL25 funktioniert es nicht mehr. Es kommt ein Fehler.
Fehler in der Datenquelle

Was hat sich hier geändert?
Muss ich etwas im SQL Umstellen?

Vielen Dank für Eure Hilfe im Vorfeld

LG
Frank

Wann genau erhalten Sie die Meldung? Könnten Sie eine Logdatei hier anhängen, die den kompletten Aufruf bis zum Auftreten des Fehlers zeigt :slight_smile:?

Hallo Herr Bartlau,

direkt in der Vorschau. Wenn ich auf Design gehe. Lädt sich der Designer ohne Fehler. Schalte ich im Designer auf Vorschau um, kommt die Meldung
"Mehrdeutiger Spaltenname ‘AuftragID’.

Auftragsbestatigung.lst (145.9 KB)

Vielen Dank für Ihr Hilfe

LG
FRank

Anbei noch das Log Filev4gqayo1.log (166.9 KB)

Ich vermute das Problem in den JOIN-Statements. Sie könnten einmal folgende Dinge ausprobieren:

  • setzen Sie für den Provider die Eigenschaft UseLegacyRegexSqlTokenizer auf true. Diese ist vor dem Intellisense verborgen.
  • alternativ könnten Sie auch einmal die Eigenschaft MinimalSelect des Providers auf false setzen.

Bitte prüfen Sie einmal, ob eine dieser beiden Änderungen hilft. Ansonsten wäre es vielleicht das Beste, das über den Support zu klären - dann könnten wir auch mal die tatsächlich abgesetzten Queries analysieren und so detailliert schauen, was das Problem verursachen könnte.

1 Like

Das Ergebnis dieser Abfrage, dürfte für beide Tabellen eine Spalte mit AuftragID haben, welche LuL als uneindeutig identifiziert.

Lösung ist, dass man für eine der Tabellen die splaten alle ausschreibt und AuftragID weglässt, sodass im Endergebnis nur eine Spalte mit dem Namen AuftragID vorkommt.

Alternativ, z.B. wenn sich die AuftragIDs unterscheiden, kann man ein Alias verwenden wie zum Beispiel dbo.AuftragLadestelle.AuftragID As AuftragID_Ladestelle

1 Like

Vielen lieben Dank.

Ich habe
MyCommandDataSetProvider.MinimalSelect = False
ausgeklammert und nun funktioniert es ohne Probleme
Dank Euch

LG
Frank

Hallo Herr Bartlau,

vielen Dank für Ihre Hilfe.
Ich hatte bereits im Code
MyCommandDataSetProvider.MinimalSelect = False

Auf Ihren Post hin, habe ich einfach die Zeile mal als Test ausgeklammert und siehe da - Es funktioniert.

Vielen Dank für Ihre Hilfe.
Bleiben Sie Gesund!

LG
Frank

1 Like

Gut zu hören und vielen Dank für die guten Wünsche - die gebe ich gerne zurück!

© combit GmbH