VB6-Unicode-DBDemo

23/12/2008 - 00:50 von Schmidt | Report spam
So, habe fertig... ;-)

Steht bereit unter:
www.datenhaus.de/Downloads/VB6UniDemo.zip
(Vor Benutzung bitte "alles wo *.ocx dransteht"
registrieren, wollte nicht Extra ein Setup benutzen -
die VB6-IDE zum Ausführen des Source sollte ja
überall gegeben sein - und unter XP müsste das
automatische Nachregistrieren der OCXe eigentlich
auch automatisch klappen, da selbige neben der
VB6UniDemo.exe liegen - hier lohnt sich also auch
der Versuch eines "direkten Doppel-Clicks").

Ok, hier also der Aufwand an Codezeilen (nur die
Anweisungszeilen gezàhlt, wie Peter das auch tat):

DataSource-Klasse:
VB.NET 27 Zeilen - VB6 10 Zeilen

Form1:
VB.NET 29 Zeilen - VB6 17 Zeilen

Form2:
VB.NET 6 Zeilen - VB6 7 Zeilen

Form3:
VB.NET 27 Zeilen - VB6 13 Zeilen

Halt, halt...;-) für VB6 kommt noch'n büschen was:

modGlobal.bas (mit Sub Main und einem Declare usw.)
6 Zeilen

ucFlexAndDC.ctl (FlexGrid und Data-DC in einem Ctl vereint)
20 Zeilen

Macht in Summe dann:
VB.NET 89 Anweisungs-Zeilen vs. VB6 73 Anweisungs-Zeilen.

Hab den VB6-Code also auf ein paar Module mehr
verteilt - so daß, wenn Ihr da reinschaut - alles recht
"aufgeràumt" wirken sollte (hab deshalb nicht großartig
kommentiert, wer Fragen hat - bitte einfach hier stellen).

Soviel zum "Verschaltungscode in konkreten Anwendungs-
szenarien" - und ich denke, die Meinung von Aldi Appermann
und auch die vieler Anderer in der Gruppe (inkl. meiner
Wenigkeit) sollte hiermit bestàtigt bzw. belegt sein:
Wer gute Libs besitzt oder selbst geschrieben hat und entspr.
darin eingearbeitet ist, ist mit VB6 genauso produktiv wie
mit der .NET-Klassenbibliothek.

Die zu erwartende Diskussion wird sich vermutlich auf das
Thema der verwendeten Libraries konzentrieren und
auf den nötigen "MausClick-Aufwand" in der jew. IDE.

Hierzu vorab schonmal entspr. Infos:

Die Demo stützt sich hinsichtlich der verwendeten Komponenten
auf ein Set an UniCode-Controls, bei welchem ich darauf geachtet
habe, möglichst auf im Netz erhàltliche Freeware zurückzugreifen.

Verwendete UniCode-Controls:
(wie gesagt, bitte registrieren vor Benutzung des Projekts in der IDE)
UniTextBox von Timo Kunze (Freeware)
UniStatusBar von Timo Kunze (Freeware)
UniCombo von Zhu Jin Yong (PSC - Freeware)
UniFlexGrid8 von ComponentOne (war ca. 2 Jahre frei downloadbar)

zusàtzlich kommt noch der VB6-Standard-DatePicker zum Einsatz

und meine eigenen Komponenten (ebenfalls Freeware):
dhRichClient.dll (wird in dem Beispiel regfree benutzt)
sqlite35_engine.dll (StdCall-Compile von sqlite.org, neueste Version)
DirectCOM.dll (regfree instantiation-helper)
dhSQLiteDC.ocx (ADO-Like DC-Control mit DataBinding-support
für SQLite-Recordsets)

An "Datenumgebungs-Aufwand" hatte ich zwei
"Create Table" Statements abzusetzen - und für
kaskadiertes Löschen noch ein "Create Trigger"-Statement.
Zuletzt habe ich noch ein DB-Command für den
Filter-View definiert (und innerhalb der DB als
"Stored-Procedure" hinterlegt).
Das war's eigentlich hinsichtlich DB-Konfiguration.

In der IDE beschrànkte sich der Aufwand auf das
Aufziehen der Controls, die entspr. Benamung und das
Setzen von ein paar Properties:
auf dem FlexGrid ca. 3-4 (AllowEdit - AllowColResize usw.)
und auf allen anderen Uni-Controls hab ich noch den
Font auf Arial geschaltet - das war's im Prinzip - der
Rest passiert per Code - und der fiel ja nicht sehr
umfangreich aus (in meinem Codeumfang sind also auch
die entspr. Zeilen für's Handling des DataBindings mit drin).

Also alles in allem gewohnte VB6-Herangehensweise -
wenn man jetzt mal davon absieht, dass alles auf Basis
meiner SQLite-Wrapperklassen passiert - aber das
entspricht weitgehend dem Handling das man von ADO
her gewohnt ist.

Und natürlich ist das Ganze auch ein wenig "Werbung"
bzgl. RichClient usw. - habe deshalb das Beispiel noch
ergànzt um einen Remote-DataLayer, der die Schnittstelle
des "normalen Desktop-DataLayers" implementiert
(Klasse cRemoteDataLayer für die Client-Anwendung
der Appserver dazu wird für Demozwecke direkt im Prozess
der Client-Anwendung gehostet - waren 4-5 Zeilen Code
in der Zusatz-Form fAppServer + serverseitige Dll-Klasse
cServerLayer, deren Code dem der Desktop-Datalayer-
Klasse sehr àhnelt).

Beim Starten der Anwendung wird gefragt, in welchem
Modus man arbeiten möchte - für normalen "Desktop-
Modus" hier einfach mit Nein antworten.

Ok, die Infos sollten an der Stelle vielleicht erstmal genügen,
mehr dann im Threadverlauf.

Olaf
 

Lesen sie die antworten

#1 Timo Kunze
23/12/2008 - 01:08 | Warnen spam
Schmidt schrieb:
zusàtzlich kommt noch der VB6-Standard-DatePicker zum Einsatz


Da hab ich übrigens derzeit etwas in der Mache. ;)

Timo
www.TimoSoft-Software.de - Unicode controls for VB6
"Those who sacrifice freedom for safety deserve neither."

Ähnliche fragen