Article View: be.comp.programming
Article #14702Re: Welke codes in VB6 om te voorkomen dat het programma tegelijkertijd uitgevoerd wordt?
From: Bart.Vanhauwaert
Date: Mon, 15 Jan 2001 12:33
Date: Mon, 15 Jan 2001 12:33
93 lines
6005 bytes
6005 bytes
Frans Bouma <perseus@xs4all.nl> wrote:
> wat interesseert mij dat nou, waaraan het ligt! het FEIT ligt er
> dat ALS ik COM wil gebruiken ik meer werk heb in C++ dan in VB in
Jij hebt meer werk omdat je al geleerd hebt hoe het in VB moet,
maar nog niet hoe het in C++ moet, daar heb je een punt. Punt is dat
iemand die wel weet hoe het in C++ moet, daar niet meer werk aan
heeft dan jij in VB.
> En ik breng dagelijks ong 3 uur door in VC++ en nee, die genereert
> niet alles voor mij, plus is gegenereerde code wel aardig, maar als
> je daarvan afhankelijk bent in je code is het minder handig. Je bent
> nu ERG hard bezig om wat ERG simpel kan in VB en ERG NIET Simpel in
> C++ te bestrijden met dat het even simpel zoniet simpeler kan in
> VC++. Je mag dat verkondigen, het lijkt me alleen niet zo verstandig.
> bv: (krijgt sName mee en haalt ID op uit database)
> Dim csoSecurity as new DBSec.clsSecurity
> Dim arMyRecordset as new ADODB.recordset
> Dim sSQL as string, sConn as string, sIDValue as string
> sConn = csoSecurity.GetConnectionString()
> sSQL="SELECT ID FROM TABLE WHERE Name='" & sName & "'"
> arMyRecordset.open sSQL, sConn
> sIDValue = arMyRecordset("ID").value
> arMyRecordset.close
> Veel korter kan ik het niet opschrijven. Veel korter kun jij het
> ZEKER niet opschrijven in C++. ik heb _NIETS_ gegenereerd, en
> alles is zeer leesbaar, er is _GEEN_ kennis nodig van smartpointer
> macro's en ADO specific macro's om te snappen wat er staat.
Zoals gezegd schrijf ik helemaal niets dat met databases te maken
heeft. Maar ik merk op dat al wat je doet is een wrapper aanroepen
die SQL gaat uitvoeren. Het enige wat je doet is VB gebruiken
om SQL uit te voeren. Pasop! Dat is een heel verstandig iets,
maar je moet de kracht van SQL niet in de schoenen van VB schuiven.
De enige database waar ik ooit mee gewerkt heb (en ja, dat was voor
een lullig projectje op univ), mysql, had ook een C wrapper en daar
had je ook niet veel meer lijnen code nodig om exact hetzelfde te doen.
_Als_ ik ooit een database zou moeten programmeren zou het eerste
wat ik schrijf een wrapper class zijn die mij toelaat om hetvolgende
te schrijven.
DB::RecordSet Result(MyDB.Query("SELECT ID FROM TABLE WHERE Name="+sName));
if (Result.size())
return Result.begin()["ID"];
else
// not found.
Wat is het verschil? Ja, VB heeft waarschijnlijk al een API die dit
toelaat. Maar C++ laat mij toe om die API snel en effectief zelf
te voorzien voor eender welk probleem, en niet enkel die waar er al een
api voor bestaat.
En nu we toch in een pissing contest aan het belanden zijn wie de beste
API heeft of kan bedenken. Stel dat mijn sql query meerdere resultaten
teruggeeft die ik zou willen sorteren op basis van het Straat veld
maar dan wel in de woordenboek-orde van Zweden (daar waar mijn sql
server slechts ordent op engelse woordenboek-orde) dan zou dat worden
std::sort(Result.begin(), Result.end(),
DB::RecordSetOrder("STRAAT", SwedishStrings));
Nu jij weer.
> Dat jij dit dan NOG beter in C++ kunt doen, vind ik geweldig voor je,
> ik doe dit fijn in VB omdat het me slechts 8 regels code kost, waarvan
> 3 regels met declaraties. Dat jij dat niet kunt omdat je slecht slaapt
> omdat je VB gebruikt, immers een scriptingtaal voor weenies, en voor
> alles C++ moet gebruiken want dat is een BETERE taal (?) de enige die
> je er mee hebt ben jezelf en je teamleden.
Het project waar ik aan werk heeft een VB scripting end. Klanten van ons
doen daar de zotste dingen mee (ze breien dat aan Excel, Access, ...)
Dat is hool mooi en geen haar op mijn hoofd dat er aan denkt om hun
die mogelijkheid af te pakken. Het heeft zelfs tot gevolg dat wijzelf
geregeld ook VB code schrijven.
Maar iedere keer als een deelprobleempje terugkomt in VB en ik herschrijf
dat in C++, ziet het er beter uit, is het efficienter, doet het zijn
ding op een flexibelere wijze en is iedereen uiterst tevreden.
Meestal implementeer ik de zaak ook sneller dan de klant het in VB
heeft kunnen doen, maar dat is geen eerlijke vergelijking aangezien
ik het project natuurlijk beter ken aangezien ik er full time aan
werk en een klant er full time mee werkt en slechts sporadisch
eraan werkt.
cu bart
Technical Details
Message-ID:
<gnqu39.b65.ln@jafshome.gtk.fr>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-03!supernews.com!cyclone-sjo1.usenetserver.com!news-out.usenetserver.com!news.tele.dk!193.190.198.17!newsfeeds.belnet.be!news.belnet.be!skynet.be!poster!not-for-mailReferences:
<9351an$f7n$1@news1.skynet.be> <Pine.LNX.4.21.0101051949531.9940-100000@backslash.moeha.net> <9377d7$jbe$1@news1.skynet.be> <3A572F38.50D749B0@xs4all.nl> <93f8m5$5tf$1@porthos.nl.uu.net> <3A5B58F4.A2EC26E9@xs4all.nl> <93h90p$acu$1@porthos.nl.uu.net> <3A5CB023.748599E@xs4all.nl> <93jtut$npo$1@porthos.nl.uu.net> <3A5E0CDB.799DE750@xs4all.nl> <3A5E18D3.FEA73C86@chello.be> <961o39.s58.ln@jafshome.gtk.fr> <93pc5c$lhm$1@news1.xs4all.nl> <sqcs39.6ms.ln@jafshome.gtk.fr> <93ugd4$hfu$1@news1.xs4all.nl>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: 107324,d0015270be29ee92
X-Google-Attributes: gid107324,public
X-Google-Thread: fcea4,d0015270be29ee92
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2001-01-15 09:26:04 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-03!supernews.com!cyclone-sjo1.usenetserver.com!news-out.usenetserver.com!news.tele.dk!193.190.198.17!newsfeeds.belnet.be!news.belnet.be!skynet.be!poster!not-for-mail
From: Bart.Vanhauwaert@nowhere.be
Newsgroups: be.comp.programming,nl.comp.programmeren
Subject: Re: Welke codes in VB6 om te voorkomen dat het programma tegelijkertijd uitgevoerd wordt?
Date: Mon, 15 Jan 2001 13:33:52 +0100
Organization: Belgacom Skynet SA/NV
Lines: 93
Message-ID: <gnqu39.b65.ln@jafshome.gtk.fr>
References: <9351an$f7n$1@news1.skynet.be> <Pine.LNX.4.21.0101051949531.9940-100000@backslash.moeha.net> <9377d7$jbe$1@news1.skynet.be> <3A572F38.50D749B0@xs4all.nl> <93f8m5$5tf$1@porthos.nl.uu.net> <3A5B58F4.A2EC26E9@xs4all.nl> <93h90p$acu$1@porthos.nl.uu.net> <3A5CB023.748599E@xs4all.nl> <93jtut$npo$1@porthos.nl.uu.net> <3A5E0CDB.799DE750@xs4all.nl> <3A5E18D3.FEA73C86@chello.be> <961o39.s58.ln@jafshome.gtk.fr> <93pc5c$lhm$1@news1.xs4all.nl> <sqcs39.6ms.ln@jafshome.gtk.fr> <93ugd4$hfu$1@news1.xs4all.nl>
NNTP-Posting-Host: 194-78-202-248.pro.turboline.skynet.be
X-Trace: news1.skynet.be 979579265 21327 194.78.202.248 (15 Jan 2001 17:21:05 GMT)
X-Complaints-To: abuse@skynet.be
NNTP-Posting-Date: 15 Jan 2001 17:21:05 GMT
User-Agent: tin/1.4.4-20000803 ("Vet for the Insane") (UNIX) (Linux/2.2.17-21mdksecure (i686))