[PHP] connectie via odbc met i-Series

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik probeer via php (gewoon een XP bakje als webserver) een connectie op te zetten om daar vervolgens de database op de i-Series te kunnen benaderen. Mijn uiteindelijke doel is een soort filebrowser te bouwen wat door bibliotheken browsed zeg maar :)
Maar, de ik krijg de connectie nog niet aan de praat. Ik heb nu dit :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<html>
<head>
<title>Just testing</title>
</head>
<body bgcolor="white">
<?php
$database = "NAME";
$hostname="AS400";
$user="USER";
$password="PASSWORD";
$port="21";

$conn_string = "DRIVER={iSeries Access ODBC Driver};DATABASE=$database;" . 
"HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;"; 

echo $conn_string;
$conn = odbc_connect($conn_string, '', ''); 

if ($conn) { 
echo "Connection succeeded."; 
odbc_close($conn); 
} 
else { 
echo "Connection failed."; 
} 

?>

Dat script geeft de volgende foutmelding :
code:
1
2
Warning: odbc_connect() [function.odbc-connect]: SQL error: [IBM][iSeries Access ODBC-stuurprogramma]Vereiste systeemnaam voor verbinding ontbreekt., SQL state S1000 in SQLConnect in C:\Inetpub\wwwroot\phpfrut\index.php on line 17
Connection failed.

Nu zit ik al wat uurtjes te zoeken naar de oorzaken daarvan. Ik heb zelf het idee dat ik naar odbc.ini en odbcinst.ini moet gaan kijken. Het relevant gedeelte van het bestandje odbc.ini :
code:
1
2
3
[NAME]
Driver32=C:\WINDOWS\System32\cwbodbc.dll
Hostname=AS400

en in odbcinst.ini vind ik geen enkele verwijzing noch naar de DSN, de hostname of de driver.
Verder heb ik gezocht met [google=odbcinst.ini iseries], [google=odbc_connect IBM] en [google=SQL state S1000] etc. maar ik kom er niet uit.

Wie kan me wel helpen ? :)

[ Voor 8% gewijzigd door Verwijderd op 30-03-2006 14:05 ]


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Ik heb alleen ervaring met JDBC en iSeries, maar misschien heb je er toch wat aan... voor sommige drivers moet de DRDA listener op de iSeries geactiveerd zijn en draaien op poort 446 (default DRDA poort).

Verder moest ik als database name de naam van de relational database opgeven, dat was in mijn geval de naam van de machine, maar dat kan ook anders zijn. Check dat met "wrkrdbdire" op de CL prompt, je moet de naam bij *LOCAL hebben.

[ Voor 12% gewijzigd door Gerco op 30-03-2006 14:24 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
thanks. Probleem echter nog niet opgelost.
Iemand nog iets ? :)