Ohne Option Explicit - Laufzeit

Hallöchen,
ich arbeite mich gerade in ein VB-Programm ein, indem kaum eine Variable (5 von 600) definiert ist.
Gut, diese Variablen werden meistens für Insert, Select und Update-Statements auf eine Datenbank verwendet.
Abgesehen, daß es momentan schwierig ist Fehler nachzuvollziehen (NULL Wert wird Variabel zugeordnet - okay - Datenbank-Insert - PENG), geht es mir um das Laufzeitverhalten.
Bis das Programm startet dauert das ewig und Abfragen noch viel länger.
Kann der ständige Gebrauch von „VARIANT“-Typen so ein schlechtes Laufzeitverhalten auslösen???

Was für Nachteile (vor allen für mich - der das Teil in Zukunft betreuen muß) kann ich durch die fehlende Variabeldeklaration erwarten??

Gruß

Sina

hallo sina,
also ich glaube nicht, das 5 variant-variablen das programm lahm machen :wink:
entweder du überprüfst die variablen auf richtigkeit der werte bevor du sie wieder in die datenbank schreibst, bzw. beispielsweise verwendest du einen datenbank-trigger der - wenn null- einen standard-wert in die db schreibt

zu den abfragen- sieh dir mal die sql-statements an, evtl. kann man diese performanter machen/gestalten
ansonsten hilfts nur, an der db selber zu schrauben, wie indexes usw. setzen… das nur als tip

ich empfehle, bzw. ich arbeite immer mit „option explicit“
schon allein das „er“ mir meckert wenn ich eine nicht deklarierte variable schreiben will(–> verschrieben usw…)

ansonsten müstest du dein problem genauer beschreiben damit ich/wir dir besser helfen können

viele grüße

rasta

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Sina

ich arbeite mich gerade in ein VB-Programm ein, indem kaum
eine Variable (5 von 600) definiert ist.
Gut, diese Variablen werden meistens für Insert, Select und
Update-Statements auf eine Datenbank verwendet.
Abgesehen, daß es momentan schwierig ist Fehler
nachzuvollziehen (NULL Wert wird Variabel zugeordnet - okay -
Datenbank-Insert - PENG), geht es mir um das
Laufzeitverhalten.
Bis das Programm startet dauert das ewig und Abfragen noch
viel länger.
Kann der ständige Gebrauch von „VARIANT“-Typen so ein
schlechtes Laufzeitverhalten auslösen???

Ich muss hier Rasta wiedersprechen, das Laufzeitverhalten wird durch VARIANT sehr beeinflusst.
Die Anzahl ist ein kleineres Problem, welches aber trotzden zu mehr Laufzeit-Overhead führt.
Mehr bemerkbar macht sich aber, dass zur Laufzeit immer erst bestimmt werden muss um welchen Datentyp es sich gerade handelt, um die richtige Funktion, z.B. für eine Addition, anwenden zu können.

Was für Nachteile (vor allen für mich - der das Teil in
Zukunft betreuen muß) kann ich durch die fehlende
Variabeldeklaration erwarten??

Du wirst Probleme bekommen mit Seiteneffekten, d.h. du weist nie ob die Variable jetzt nur lokal in einer Soubroutine verwendet wird oder ob sie wirklich global benutzt wird.

MfG Peter(TOO)

Hallöchen,
ich arbeite mich gerade in ein VB-Programm ein, indem kaum
eine Variable (5 von 600) definiert ist.

wie Rasta gesagt hat => Option Explicit einbauen. Dann alle Variablen mit Datentypen deklarieren und nicht als Variant deklarieren

Kann der ständige Gebrauch von „VARIANT“-Typen so ein
schlechtes Laufzeitverhalten auslösen???

Der Typ Variant ist sicherlich nicht förderlich für eine gute Performance, jedoch glaube ich nicht, dass der Typ Variant primär für die schlechte Performance verantwortlich ist. Meistens ist eine Applikation langsam wegen des Datenzugriffs. Überprüfe deshalb, ob…

  • … bei jedem Query wirklich nur die Daten geholt werden, die benötigt werden
  • … jedes Query nötig ist? Könnte man zum Beispiel Queries zusammenlegen?
  • … Datenbank-Connections jedes mal wieder neu aufgebaut werden
  • … Daten auch gecached werden könnten, anstatt ständig auf die Datenbank zuzugreifen.
  • … beim Start der Applikation nur die benötigten Daten geholt werden

Was für Nachteile (vor allen für mich - der das Teil in
Zukunft betreuen muß) kann ich durch die fehlende
Variabeldeklaration erwarten??

=> Wartbarkeit sowie Erweiterbarkeit der Applikation sehr aufwändig.

Gruss, DaHo