[Javascript] Database connectie

Pagina: 1
Acties:

  • Harribo
  • Registratie: Augustus 2002
  • Laatst online: 01-09 21:22
Weet iemand hoe ik een database connectie kan maken vanaf de client side mbv javascript?
Het moet ,volgens microsoft kunnen mbv een adodb.connection maar het is niet werkende te krijgen. Ik gebruik personal webserver (zelfde functionaliteit als
iss, zegt men).
Heeft iemand een WERKENDE oplossing?

Verwijderd

Javascript kan voor zover ik weer geen connectie naar een database server maken. Wellicht dat het met een ActiveX object wel lukt. Maar waarom doe je het niet op de gewone manier? Scrhijf een server-side script (ASP) die dat voor je regelt. Een client laat je normaliter niet direct met databases connecten.

  • Harribo
  • Registratie: Augustus 2002
  • Laatst online: 01-09 21:22
ik had de opdracht (van school) om een 3tier model te maken in asp, daarna in javascript, maar ik krijg de indruk dat client-side database connectie met javascript een illusie is.
als je op de microsoft site kijkt moet het te doen zijn met actievx objecten. Maar als je dat leest , dan lijkt het heeeeeeeel veel verdacht op asp, ze kunnen het niet laten. Enfin ik ben er al de halve dag zoet mee. 6 jaar geleden kon het wel mbv netscape enterprise server en livewire maar dat is ouwe koek.
Vraag die nu rest is de volgende. Met asp krijg ik een resultset, verpakt in een resultset-object, hoe kan ik die converteren naar een javascript variabele? De rest , afgezien dus van de database-connectie, moet dus wel in javascript gebeuren.

  • [eNeRGy]
  • Registratie: November 1999
  • Laatst online: 24-04-2025
Weet je zeker dat ze clientside javascript bedoelen en niet serverside javascript ?

  • Harribo
  • Registratie: Augustus 2002
  • Laatst online: 01-09 21:22
ik zou ook niet weten hoe ikhet mbv van server-side javascript moet doen.
Ik heb de opdracht wat herlezen en die luidt als volgt:

============================================

6.2. Database met ASP VB Script

Microsofts Internet Information Server kent als Interface naar applicaties, de zogenaamde Active Server Pages. Kortweg gezegd komt het erop neer dat applicaties en databases benaderd kunnen worden via instructies die zijn ingepakt in HTML. Door het oproepen van de HTML pagina, worden de script instructies door de server uitgevoerd (server side scripting) en de resultaten van het uitvoeren van het script worden als HTML naar de client gestuurd. De script instructies in de ASP worden in VBScript geschreven. Aspecten:

§ 3 tier systeem met IIS 4.0 , database en client
§ Client bevat een formulier (meerder pagina’s!!) om database te up-daten
§ problematiek van het state-less http protocol
§ Opvragen van result sets
§ Bijwerken data in de database
§ Security

6.3. Database ASP met Javascript
Als 6.2, maar nu met behulp van Javascript.

============================================

Ik heb 6.2 al gedaan. moet nu nog 6.3 doen , dus mbv javascript. Maar heb weinig idee hoe en wat. Ik haal dus de data met asp van de server en wat moet ik dan verder met javasciprt doen dan?? Hebben jullie een idee oid?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

Even een vraagje tussendoor: Dezelfde vraag heb je gisteren ook gesteld; ik heb toen een antwoord 'gegeven' in de vorm van een artikel.

Een gedeelte van je antwoord staat in dat artikel, te weten:
code:
1
2
3
4
5
6
7
8
9
<%@ Language="JScript"%>
<%
   con= Server.CreateObject("ADODB.Connection"); 
   con.ConnectionString = "DRIVER={Microsoft ODBC for Oracle};&#8221; &
                          "SERVER=cerndb1;UID=tiger;PWD=scott";
   con.Open(); 
   sql = "SELECT * FROM CCDB.NOVELL_INFO WHERE SURNAME='HAGEN'";
   CurrentRecordset = con.Execute(sql)
%>


Nu is de vraag welk gedeelte je niet begrijpt?

Ik heb wel een vaag vermoeden, namelijk dat je de vraag niet helemaal begrijpt.

ASP is GEEN taal, maar een aanvulling (in de vorm van een aantal componenten) op een taal. ASP kan gebruikt worden samen met VBScript (jouw opdracht 6.2) om de componenten aan te spreken. Echter, je kan ook JScript / Javascript gebruiken om deze componenten aan te spreken. Dit moet dan WEL op de server plaatsvinden (per definitie, in het geval van ASP).

Wat duidelijk gemaakt moet worden door de opdracht, is denk ik dat de syntax i.c.m. ASP verschilt met beide talen.

Voorbeeld:
VBScript: response.write "Hallo"
In Javascript genereert deze een error; een juiste syntax zou zijn:
Javascript: Response.Write("Hallo");

Voor je opdracht moet je dus in principe 2x (1x in VBScript, 1x in Javascript) hetzelfde doen, maar je code ziet er ietsie anders uit.

edit:

Ik vind het een twijfelgevalletje of Serverside Javascript niet in P&W thuishoort; zeker als er gebruik wordt gemaakt van ASP. Immers, VBScript + ASP = P&W; Javascript + ASP = W&G?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Harribo
  • Registratie: Augustus 2002
  • Laatst online: 01-09 21:22
nee dat is niet het geval,. Ik heb net je voorbeeld geprobeerd maar het werkt niet.
ik maak een bestand, genaamd loginfrm.html. die laad ik via de webserver in mijn browser.
de body van html ziet er zo uit :
===============================================
<body>
<h3 align="center">Login Form</h3>


<form>
<script type="text/javascript">
document.write("This message is written when the page loads")
</script>
<%@ Language="JScript"%>
<%
con= Server.CreateObject("ADODB.Connection");
con.ConnectionString = "DRIVER={Microsoft ODBC Driver};” &
"SERVER=cerndb1;UID=tiger;PWD=scott";
con.Open();
sql = "SELECT * FROM CCDB.NOVELL_INFO WHERE SURNAME='HAGEN'";
CurrentRecordset = con.Execute(sql)
document.write("komt hiero wel")
%>
</form>
=================================================

Het gedeelte van <script type =text/javascript> voert hij netjes uit maar hij slaat het gedeelte (blok van <%@languag=... %>) van jou over. Die wordt niet uitgevoerd. Zet ik dit in een <script type=javascript>-tag, dan gaat ie zeuren dat hij het object Server niet kent (in conn = Server.CreatObject(...) ). Hoe kan ik dan die ASP objecten dan wel gebruiken middels javascript?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

Even kijken.......

code:
1
<%@ Language="JScript"%>

Hoort PER DEFINITIE bovenaan de pagina te staan.

code:
1
document.write("komt hiero wel")

Gaat niet werken; document.write = clientside; je werkt op de server, dus je moet het Response-object gebruiken.

En ik zag nog een pagina met de extensie html staan; heb je je webserver zo geconfigureerd dat .html ook door de asp-parser heen gaat? Zo niet, dan moet je een andere extensie nemen (denk .asp i.p.v. .html)

Ook zag ik dat je de connectionstring nog niet had aangepast; ik neem aan dat je een andere db-naam, inlognaam en wachtwoord hebt?

No offence, maar ik denk dat je beter eerst een aantal tutorials kan nakijken / nalopen, want ik heb het idee dat je geen idee hebt waar je mee bezig bent.
Wat je vooral goed moet beseffen is dat clientside Javascript ongelijk is aan serverside javascript.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Harribo
  • Registratie: Augustus 2002
  • Laatst online: 01-09 21:22
Ja ik merkte dat die <%@ Language="JScript"%> bovenaan moest staan. Is het nu zo dat het hele bestand nu meteen alleen maar javascript als scriptaal bevat?
Die html heb ik al veranderd naar asp, dat werkte toch beter:)
Dus document wil niet, aangezien ik dus weer server-side aan het scripten ben, handig , dus inderdaad het lijkt op vbscript maar dan alles in jscript.

Verder is database Access en heet hij "teamza4" en de db-server is localhost (vooralsnog) ,maar ben er nog niet achter hoe ik dat doe. Als jij het zo weet, dan scheelt het mij weer. username, pw heb ik niet.

Sorry voor mijn geklungel, maar ben er niet echt in thuis....

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

Harribo schreef op 16 augustus 2002 @ 18:38:
Ja ik merkte dat die <%@ Language="JScript"%> bovenaan moest staan. Is het nu zo dat het hele bestand nu meteen alleen maar javascript als scriptaal bevat?
Definieer scriptaal: Je SERVERSIDE scripttaal is JScript; wat je clientside als scripttaal neemt, zal je server een worst wezen.. ;)
Die html heb ik al veranderd naar asp, dat werkte toch beter:)
Dus document wil niet, aangezien ik dus weer server-side aan het scripten ben, handig , dus inderdaad het lijkt op vbscript maar dan alles in jscript.
Is denk ik ook het idee van de opdracht.. :)
Verder is database Access en heet hij "teamza4" en de db-server is localhost (vooralsnog) ,maar ben er nog niet achter hoe ik dat doe. Als jij het zo weet, dan scheelt het mij weer. username, pw heb ik niet.
Wat heb je tot nu toe? En erh.. Ik heb het ook maar moeten leren; ik heb zo het vage vermoeden dat dit een klein beetje heel erg een huiswerkopdracht is en die krijg je niet voor niets.. :) De bedoeling is namelijk dat JIJ het leert.. :)

Om je een stuk op weg te helpen met je connectionstring: Ik zal er eentje van mij posten; mag jij hem omzetten naar Jscript.. :) (het is in VBScript geschreven)

code:
1
CONN_STRING = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=f:\inetpub\data\pagehits.mdb;"

OleDB is iets stabieler dan ODBC, vandaar dat ik deze heb ik gekozen; voor het effect mag het niets uitmaken. Data Source is de ABSOLUTE lokatie naar het pad.

Als je met een DSN wilt werken; die zijn wel op internet te vinden.. :)

Succes!

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Harribo
  • Registratie: Augustus 2002
  • Laatst online: 01-09 21:22
Die connectiestring krijg ik nog niet voor elkaar. Ik gebruik gewoon odbc.
Ken nu een ander vraag.
Krijg nu steeds een foutmelding bij de code:
==============================
<html>

<head>
<%
function singOut()
{
var theMoment = new Date();
var theHour = theMoment.getHours();
var theMinute = theMoment.getMinutes();
var theDisplacement = (theMoment.getTimezoneOffset() / 60);
theHour -= theDisplacement;
if(theHour > 23)
{
theHour -= 24;
}
document.write(theHour + " hours, " + theMinute + " minutes, Coordinated Universal Time.");
window.setTimeout("singOut();", 60000);
}

%>
</head>

<body>
<h3 align="center">Login Form</h3>
<form>
<strong>UserName</strong><br>
<input type="text" size="30" name="UserName"><br>
<strong>Password</strong><br>
<input type="password" size="30" name="Password"><br>
<input type="button" size="`100" name="b1" onClick=singOut()><br>
<P></P>
</form>
</body>

</html>
==============================================

De foutmelding zegt dat bij het 1e teken , dat is de beginnende <% (na de <head>) , een object wordt verwacht. Die snap ik niet, ik kan toch gewoon een functie definieren, in de head sectie van html? Of mag ik met Jscript, itt javascript, geen functiosn defnieren in de head-sectie?

  • Harribo
  • Registratie: Augustus 2002
  • Laatst online: 01-09 21:22
Ik heb mijn connectie met mijn db, hartelijk bedankt!
Het probleem ontstond doordat ik client-side javascript leerde op www.w3schools.com,
dus niet echt gedacht dat jscript de server-side scriptaal is en dat asp een taal op een ander vlak is.
Nu alleen nog bovenstaande probleem,maar dat zal wel goed komen.
Thnx!

  • Xanthus
  • Registratie: Februari 2002
  • Laatst online: 11-07 12:45
Moet Response.Write zijn, document geheel laten vallen voor serverside, er is geen object document (volgens mij) serverside. Dus geen document maar Response. En ook geen window.setTimeout. Eigenlijk is het hele bovenstaande scriptje clientside in serverside tags.
Pagina: 1