Toon posts:

[vb6] Syntax vanuit database

Pagina: 1
Acties:

Verwijderd

Topicstarter
Goeiemiddag,

Is het mogelijk om in vb6 om in runtime code uit een database te draaien ?
Bijvoorbeeld in mn database staat de volgende code
code:
1
msgbox"hoi"

dat als ik op een knop druk hij die code oppakt en uitvoert zodat ik een msgbox krijg ?

Wat ik hiermee wil bereiken is dat ik een scenario wil schrijven. Allemaal stukjes code die achter elkaar uitgevoerd worden als deze geselecteerd staat

Ik heb gezocht maar weet niet precies waar ik op moest zoeken. Ik hoop dat hier iemand een antwoord op heeft

Alvast bedankt

  • Skaah
  • Registratie: Juni 2001
  • Niet online
Ik weet niets van VB, maar in elke taal kun je een string code uitvoeren met eval(). Zoek daar eens op.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:49

gorgi_19

Kruimeltjes zijn weer op :9

Skaah schreef op 06 juni 2004 @ 16:47:
Ik weet niets van VB, maar in elke taal kun je een string code uitvoeren met eval(). Zoek daar eens op.
Afaik kent VB6 deze functie (Eval) niet. En in VB.Net, C# en alle andere talen kan je ook geen eval direct aanspreken (moet via CodeDom), om even iets buiten de context te gaan. :)

Wel is Eval het zoekwoord waar je evt. op kan zoeken. Waarschijnlijk zul je een eigen interpretertje / parsertje voor moeten schrijven.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Skaah schreef op 06 juni 2004 @ 16:47:
Ik weet niets van VB, maar in elke taal kun je een string code uitvoeren met eval(). Zoek daar eens op.
Dat geldt alleen voor geïnterpreteerde talen, niet voor gecompileerde talen.

  • Skaah
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op 06 juni 2004 @ 17:00:
[...]


Dat geldt alleen voor geïnterpreteerde talen, niet voor gecompileerde talen.
Oh, dat wist ik niet. Ik heb alleen ervaring met PHP & JavaScript :P

Verwijderd

Topicstarter
Ik ben aan het zoeken geslagen maar kan nog steeds niks vinden.
Ik heb de code in een string geladen maar nu wil ik hem executen.
met eval werkt het niet.
Iemand enig idee hoe je een string execute ?

Verwijderd

Microsoft Script control kan dit. Simpel voorbeeld:

http://www.warcraftdatabase.net/Internal/Script.rar

Het nadeel is dat het werkt met VBScript, wat op sommige punten net iets anders in dan VB, maar de meest standaard dingen werken gewoon. Ook zou je kunnen gebruiken (niet getest):

msgbox"hoi" opslaan in een string (TempString)

Dim TempString as String
Dim FinalString() as String
If Left(TempString,6) = "msgbox" then
FinalString = Split(TempString,"msgbox")
MsgBox FinalString(0)
End if

[ Voor 5% gewijzigd door Verwijderd op 06-06-2004 20:29 ]


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
is geloof ik niet helemaal wat TS wil. Ik neem aan dat er meer bij komt kijken dan een msgbox. Je moet dan voor alle mogelijke constructies een if-statement maken. Dit is wel mogelijk, maar hangt af van het aantal verschillende statements dat in een db of file wordt opgeslagen.

Verwijderd

Topicstarter
Klopt. Dit bedoel ik niet. Text uit een database in een msgbox proppen is een eitje. Ik wil dus echte code kunnen uitvoeren. Dit gaat dus niet alleen om msgbox maar vooral om een scenario te bouwen. Dit mag uit een database komen maar je ziet ook wel eens progz waar je een script kan bouwen in een bestaand programma. Dit zou ook goed zijn maar hoe dat werkt ? geen idee

  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 22-05 16:02

Tukk

De α-man met het ẞ-brein

Het zou moeten kunnen met compilatietalen, ik weet dat het met Powerbuilder wel kan.

VB geeft die functionaliteiten niet, volgens mij.

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


Verwijderd

Okey, dan gaan we nu nadenken. ;)

Wat is Visual Basic? Precies een programmeertaal die gecompileerd wordt. Wat doet die compiler? Nou die vertaalt jou Visual Basic broncode naar machinetaal.
Wat jij wil is simpelweg niet mogelijk. Daarvoor zou je in je eigen programma een compiler moeten mee-compileren. Iets wat, voor zover ik weet, onmogelijk
is.
Als dat wel mogelijk zou zijn, dan zou Visual Basic on the fly de code moeten parsen. Als je een versie vóór 5.0 gebruiker, dan doet VB dat ook, maar latere
versies compileren volledig in plaats van interpreteren (on the fly).

Feestje gaat helaas dus niet door :'(

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:49

gorgi_19

Kruimeltjes zijn weer op :9

Iets wat, voor zover ik weet, onmogelijk is.
.Net heeft hier functionaliteit voor ingebakken.

Zoals eerder gezegd ondersteund VB6 dit niet en zul je een eigen parser moeten schrijven. Echt eenvoudig gaat dit alleen niet worden. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Jongens bedankt !!
Mischien toch maar eens met .net aan de slag. Ook al snap ik er geen hol van aangezien ik Vb6 gewend ben. Maar een paar jaar terug snapte ik ook van Vb6 geen hol dus alles is te leren.

  • Lorn
  • Registratie: Maart 2000
  • Laatst online: 13-01-2025

Lorn

I have a bad feeling...

Je kunt eens kijken naar de functie CallByName. Ik denk dat je daar wel een aardig eind mee moet kunnen komen. Succes!

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 23-03 10:29

NetForce1

(inspiratie == 0) -> true

Als zo'n scenario standaard invoer en uitvoer heeft kan het toch via vbscript, dan kun je bijv. de code uit de db halen, en wegschrijven als .vbs file. Ik weet niet of je een functie in zo'n script dan kunt aanspreken vanuit vb, maar communicatie kan natuurlijk ook via files.
Dit is natuurlijk wel een beetje vies, dus misschien kun idd beter maar met .net verder gaan

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Verwijderd

Zoals BLuenet eerder al zei, is de Microsoft Script Control hetgene wat je zoekt. Je kunt deze gewoon invoegen in je VB applicatie, eventueel gedeelten van je applicatie toegankelijk maken aan de control, en dan code uit een database uitvoeren. Het is niet snel ( het is interpreted code ) maar kan erg flexibel zijn. Ik heb het ooit gebruikt voor een applicatie voor een klant, waarbij ze in VB-script eigen formules konden maken om gegevens weer te geven uit een aantal metingen.

Verwijderd

Ja, heheh. Mijn code was dus niet bedoeld als msgbox, dat is gewoon een voorbeeld. Ga hier niet dat hele programma zitten te typen :)

Verwijderd

Topicstarter
Ik ga vanavond even naar Microsoft Script Control kijken. Het hoeft niet supersnel te zijn. Veel komt er niet in te staan. Thanx a lot

  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 07:46

glashio

C64 > AMIGA > PC

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Verwijderd

Topicstarter
Daar heb ik wat aan glashio. Pscode zoek ik ook heel veel op maar wist niet welke term ik moest gebruiken
Pagina: 1