jloos Posted October 1 Share Posted October 1 Hallo, in meiner BDE kommen häufig die gleichen Tabellenabfragen vor. Nun hatte ich mir gedacht, am Anfang des Scripts alle ausgewählten Tabelleneinträge in lokalen Variablen abzuspeichern und dann nur noch mit den lokalen Variablen zu arbeiten. Erspart Mehrfachabfragen. Nur bekomme ich das noch nicht hin, ich lerne ja noch. Ich hänge mal die Anlage an. Es geht in diesem Fall um das BDE, aber die Funktion kann man ja überall verwenden. Vielleicht hat jemand Lust das zu entwickeln. Danke Gruß Jürgen 241001_KFZ-Ziele.mbp Link to comment Share on other sites More sharing options...
Hawkeye Posted October 1 Share Posted October 1 (edited) vor einer Stunde schrieb jloos: Nun hatte ich mir gedacht, am Anfang des Scripts alle ausgewählten Tabelleneinträge in lokalen Variablen abzuspeichern und dann nur noch mit den lokalen Variablen zu arbeiten. Erspart Mehrfachabfragen. Hallo Jürgen, Es wäre besser, du erklärst erst einmal, was du genau vorhast. Deine Ereignisvariable „KFZ-Ziele“ enthält eine Liste mit 13 Ziele, die wiederum je eine Liste mit 2 Listen und dann jeweils nochmal 2Tabellen enthalten. Das finde ich von der Struktur her sehr unübersichtlich. In den Tabellen ganz zum Schluß findet man dann fahrzeugspezifische Daten/Variablen, die nur für bestimmte Fahrzeuge gelten können und wohl auch sollen, wie z.B. die für „Türen öffnen“ beim Bus und „Wartezeit“ zum Ein/Aussteigen. Solche Variablen sind in den entsprechenden Fahrzeugen selbst viel besser aufgehoben und übersichtlicher per Schlagwort in den verschiedenen KfZ Typen zu verwenden. Zum Beispiel: Beim Coupe Schlagwort „KFZ“ und beim Zweiachser-Bus „BUS“ Die Liste „KFZ-Ziele“ sollten aus meiner jetzigen Einschätzung nur Angaben zu den Fahrwegen/Routen enthalten. Das Verhalten der unterschiedlichen Fahrzeuge am jeweiligen Zielpunkt sollte über Schlagworte gesteuert werden. VG, Hawkeye Edited October 1 by Hawkeye Link to comment Share on other sites More sharing options...
jloos Posted October 1 Author Share Posted October 1 Hallo @Hawkeye, Du hast Recht, ich hätte das besser erklären müssen. Ich verfolge das Prinzip "Ich bin hier an der KFZ-Abfragestelle-Nr. 5 und bin KFZ-Nr. 1. Was soll ich tun, wo muss ich hin" Jeder Gleiskontakt hat eine KFZ-Abfragestelle-Nr., jedes Fahrzeug hat eine KFZ-Nr. Ich habe also eine Datenbank KFZ-Ziele, mit einer ersten Liste aller KFZ-Abfragestelle-Nummern. Dahinter eine Tabelle mit allen KFZ-Nummern. Die Abfrage ist also KFZ-Abladestelle-Nr. + KFZ-Nr. Damit komme ich auf abzufragenden Daten, also Fahrgeschwindigkeit, nächstes Ziel, soll das Fahrzeug stoppen, wie lange ist die Wartezeit und ist eine Animation auszuführen, wenn ja welche. Ich möchte nur eine einzige Datenbankabfrage pro angefahrener Abfragestelle machen, wobei alle Daten in lokalen Variablen abgespeichert werden. Ich mache die Fahrstraßensteuerung auch so. Hat meiner Meinung nach Vorteile, weil alle Steuerdaten zusammen in einer Datenbank zusammengefasst sind. Das ist nur eine Beispielanlage. Gruß Jürgen Link to comment Share on other sites More sharing options...
Hawkeye Posted October 1 Share Posted October 1 vor einer Stunde schrieb jloos: Ich verfolge das Prinzip "Ich bin hier an der KFZ-Abfragestelle-Nr. 5 und bin KFZ-Nr. 1. Was soll ich tun, wo muss ich hin" Jeder Gleiskontakt hat eine KFZ-Abfragestelle-Nr., jedes Fahrzeug hat eine KFZ-Nr. Hallo Jürgen, Dein Thema hier lautet „Tabellenabfrage vereinfachen“. Lösung: vereinfache deine Struktur der Datenbank. Packe die fahrzeugspezifischen Daten als Variablen in die Fahrzeuge und verwende statt den selbsterstellten Listen Schlagworte (Die betreffenden Objekte sind ja dann schon in einer internen Liste im Programm enthalten.) VG, Hawkeye Link to comment Share on other sites More sharing options...
jloos Posted October 1 Author Share Posted October 1 vor 4 Stunden schrieb Hawkeye: Das Verhalten der unterschiedlichen Fahrzeuge am jeweiligen Zielpunkt sollte über Schlagworte gesteuert werden. Hallo @Hawkeye, Du hast mich nicht überzeugt. Ich finde die Daten zentral an einer Stelle für alle Fahrzeuge (also auch in einer anderen Datenbank für Züge) sehr praktisch. Soll der Porsche KFZ-Nr. 3 am Gleiskontakt mit der Nr. 2 mit 15 in den Drive In vom McDonalds fahren, so stelle ich das in der Datenbank ein. Ein anderes Fahrzeug soll aber weiter fahren und die Geschwindigkeit nicht verringern. Aber das war ja auch nicht das Thema der Anfrage. Ich möchte die 4 oder 5 oder 6 Variablen, die unter Abfragestelle und FahrzeugNr. am Anfang des scripts einmalig einlesen in lokale Variablen. Das script funktioniert ja so wie es ist. Ich möchte nur die Mehrfachabfragen vermeiden, dazu benötige ich Eure Hilfe, das kann ich nicht in Lua. Gruß Jürgen Link to comment Share on other sites More sharing options...
Goetz Posted October 1 Share Posted October 1 vor 11 Minuten schrieb jloos: Ich möchte die 4 oder 5 oder 6 Variablen, die unter Abfragestelle und FahrzeugNr. am Anfang des scripts einmalig einlesen in lokale Variablen. Das ist aber nicht sinnvoll, Jürgen. Du gewinnst nichts durch das Anlegen lokaler Kopien. local ist innerhalb einer Funktion sinnvoll. Und Funktionsparameter sind per se local. Link to comment Share on other sites More sharing options...
Hawkeye Posted October 1 Share Posted October 1 (edited) vor 27 Minuten schrieb jloos: Ich möchte die 4 oder 5 oder 6 Variablen, die unter Abfragestelle und FahrzeugNr. am Anfang des scripts einmalig einlesen in lokale Variablen. Hallo Jürgen, hier die lokalen Variablen Var_1 bis Var_6 in deinem benutzerdefinierten Ereignis. Hier im Ereignisprotokoll das Ergebnis gedruckt. vor 13 Minuten schrieb Goetz: Das ist aber nicht sinnvoll, Jürgen. Da stimme ich Götz zu. VG, Hawkeye Edited October 1 by Hawkeye Link to comment Share on other sites More sharing options...
Hawkeye Posted October 1 Share Posted October 1 Hallo vor 43 Minuten schrieb jloos: Das script funktioniert ja so wie es ist. Dann lass es doch so. Mit den lokalen Variablen wirst du dich verrennen, da das benutzerdefinierte Ereignis von jedem Fahrzeug aufgerufen wird das einen Gleiskontakt erreicht. Dann werden die lokalen Variablen überschrieben und durch deine Verzögerungen kommt dann Chaos heraus. Aber auch das muß man erst mal erkennen. Try ….. and fail VG, Hawkeye Link to comment Share on other sites More sharing options...
jloos Posted October 1 Author Share Posted October 1 Na gut, ich danke Euch Gruß Jürgen Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now