[Navision] ODBC koppeling in ASP

Pagina: 1
Acties:
  • 212 views sinds 30-01-2008
  • Reageer

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 23-05 16:31

Pelle

🚴‍♂️

Topicstarter
Men gebruikt hier Navision en ik moet wat data uit Navision trekken en hier publiceren op intranet. Er is een ODBC-driver beschikbaar: C/ODBC, en die is dus ook geinstalleerd.
Vervolgens heb ik een System DSN aangemaakt, met de juiste database, user en login, en daar een naampje aan gegeven ('woei'). Echter, als ik nu in ASP/Vbscript probeer te connecten dan krijg ik de volgende foutmelding:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft Business Solutions ApS][Microsoft Business Solutions-Navision ODBC Driver]ISAM error
Deze error verwijst naar de laatste regel van dit stukje code:

VBScript:
1
2
3
4
5
    set rsNavision  = Server.createObject("ADODB.Recordset")
    dsnNavision     = "woei"
    sqlQuery        = "SELECT Code FROM Currency"
    
    rsNavision.open sqlQuery, dsnNavision


Ik heb me een slag in de rondte gezocht met Google, op Usenet, hier op GoT en op een Navision forum, en er zijn meer mensen die dit probleem hebben, maar ik heb nergens een oplossing kunnen vinden.
Iemand hier die een idee heeft?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Dit lijkt op jouw probleem te slaan:
Accessing Remote Machines
Common Symptoms

* Microsoft OLE DB Provider for ODBC Drivers error '80004005' when attempting to open an ADO connection.
* ASP code that worked fine when the database was located on the IIS Server no longer works when the SQL or Access database is moved to a remote machine.

Description

One of the most common types of problems occurs when ASP attempts to access resources located on remote machines. A good example of this is using ADO to access either SQL Server on a remote machine or an Access .mdb file located on another Windows NT machine. The problems stem from the fact that ASP is operating in the context of the IUSR_MACHINE account. On servers that are not primary or backup domain controllers, the IUSR_MACHINE account is a local account. Since this local account is not recognized on the remote machine, access is denied to the database.
Debugging Techniques

The two most common workarounds for this problem are:

1. Change the Anonymous Logon account on the IIS server from IUSR_MACHINE to a domain account that is recognized by both machines and has sufficient permissions to the resource. In addition, be sure that this account has the log on locally user right on the IIS machine. Recall that the Anonymous Logon account is configured through Internet Service Manager.

Note: If you later decide to change back to the IUSR_MACHINE account, be sure that the password provided in Internet Service Manager matches the password provided for this account in the User Manager tool. If the passwords do not match, you will encounter Access Denied errors.

2. Add a local account to the remote machine that exactly matches the username and password of the IUSR_MACHINE account on the IIS machine, and give this account access to the database.

Note: This workaround is not recommended because it involves maintaining two separate accounts. If the passwords get "out of sync" at some point in the future, access will be denied to the database, and errors will occur.
heb je daar iets aan :?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 23-05 16:31

Pelle

🚴‍♂️

Topicstarter
Wellicht, zal ik eens uit gaan zoeken. Ik vraag me alleen af waarom dit een probleem zou moeten zijn, aangezien je met ODBC toch gewoon ergens tegenaan aan kunt praten, zonder dat je je zorgen hoeft te maken over hoe de betreffende driver dit afhandelt? Het lijkt me dat rechten-kwesties daar ook onderdeel van uitmaken :?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10:19

TeeDee

CQB 241

Navision draait toch op een MS SQL db?
Kan je daar niet middels een ADO connectie oid het e.e.a. mee doen, ipv een DSN en vervolgens deze remote aan roepen?

Op die manier skip je het hele rechten probleem van je IIS e.d. en is het enkel een user toevoegen (indien nodig) aan je SQL db.

[ Voor 42% gewijzigd door TeeDee op 03-08-2004 15:24 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06:53

gorgi_19

Kruimeltjes zijn weer op :9

In het kader van wild gokken...

Maar eens van:
SQL:
1
SELECT Code FROM Currency


SELECT [Code] FROM [Currency]

[ Voor 12% gewijzigd door gorgi_19 op 03-08-2004 15:25 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Poltergeist
  • Registratie: Oktober 2000
  • Laatst online: 00:19
TeeDee schreef op 03 augustus 2004 @ 15:23:
Navision draait toch op een MS SQL db?
Kan je daar niet middels een ADO connectie oid het e.e.a. mee doen, ipv een DSN en vervolgens deze remote aan roepen?

Op die manier skip je het hele rechten probleem van je IIS e.d. en is het enkel een user toevoegen (indien nodig) aan je SQL db.
Navision kan op een MS SQL database draaien. Echter, de meeste bedrijven gebruiken de native database, omdat deze een behoorlijk stuk sneller is.

Overigens heb ik ooit een keer wat met ODBC gedaan, maar niets met ASP e.d. Het bleek echter wel dat Navision zelf nogal "picky" is op de instellingen van het DSN bestand. Ik heb hier een klein voorbeeldje van een DSN bestand wat ik gebruik voor een koppeling naar een Powerbasic programma. Wellicht heb je er wat aan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[ODBC]
DRIVER=C/ODBC 32 bit
UID=Gebruikersnaam
PWD=Wachtwoord
SERVER=N
CN=Companyname
RD=Yes
ML=1033
CD=No
BE=Yes
CC=Yes
RO=No
QTYesNo=Yes
IT=All Characters
OPT=Text
PPath=C:\Program Files\Navision370
NType=tcp
SName=Servername
CSF=Yes

Vooral het IT=All characters verhaal was nogal belangrijk. Ik weet alleen niet meer welke foutmelding er kwam als je dat verkeerd gebruikte (en heb nu ook geen tijd/zin om het weer uit te proberen)

[ Voor 43% gewijzigd door Poltergeist op 03-08-2004 15:38 ]


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 23-05 16:31

Pelle

🚴‍♂️

Topicstarter
TeeDee schreef op 03 augustus 2004 @ 15:23:
Navision draait toch op een MS SQL db?
Nee, wij gebruiken de native database, onder andere omdat daar (naar ik me heb laten vertellen) bepaalde veld-typen mogelijk zijn die bij het genereren van overzichten een aanzienlijke snelheidswinst opleveren t.o.v. MSSQL.
gorgi_19 schreef op 03 augustus 2004 @ 15:24:
In het kader van wild gokken...

Maar eens van:
SQL:
1
SELECT Code FROM Currency


SELECT [Code] FROM [Currency]
De query is niet fout, tenminste, ik heb ook geprobeerd om een connectie te maken (dus met een Adodb.Connection) en die gaat ook al onderuit, dus het ligt niet aan de query :)

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10:19

TeeDee

CQB 241

Ah, dacht altijd dat navision op ms sql draaide :) My bad.

Verder stond er in de eerste hit wel wat handige tips als ik het zo gauw zag.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • mvliet
  • Registratie: Oktober 2000
  • Laatst online: 13-04 09:27
Ik weet niet of je er al uit bent...maar ik gebruik deze manier op met C\ODBC een verbinding in VBS te leggen.

sName = servernaam
ML=1043(nederlands)/2048(Taal Neutraal)


o_db.OPEN "DRIVER=C/ODBC 32 bit;Extended Properties=""UID=XXX;PWD=XXX;SERVER=N;CN=bedrijfsnaam;NType=TCP;SName=" & sName & ";CSF=Yes;CS=0;CC=No;OPT=Integer;ML=2048"""


rs1.OPEN "SELECT * FROM ""bladiebla"" WHERE ""x""='" & sX & "'", o_db

etc etc

www.cenobytes.nl Noize Party's & industrialnation.nl

Pagina: 1