Konfiguracja:
1. Linux:
- DEBIAN 2.2
- Apache 1.3.14
- PHP4.0.4
- OpenLink iODBC 2.0.12
- OpenLink uDBC 1.0.1
- OpenLink driver 1.0.0
- glibc2
2. Windows2000:
- OpenLink 3.2
Na Win2000 zainstalowany jest MS-ACCESS i skonfigurowane w ODBC źródło
danych - maszyna pracuje jako serwer bazy danych. Plik .mdb również znajduje
się na tej maszynie. Dodatkowo zainstalowany jest Most OpenLink ODBC-ODBC
Bridge wersja 3.2. Uruchomiony jest broker.
Win2000 jest oczywiście klientem dla www generowanego przez PHP na Linuxie.
Linux jest serwerem www z PHP. Zainstalowany jest pakiet OpenLink w tej
samej wersji co na Win (pliki pobrane z OpenLink dla wersji mostu 3.2).
Wkompilowany jest w Apache moduł PHP a w PHP z kolei sterowniki iODBC
(--with-iodbc=ścieżka_do_openlink) oraz OpenLink
(--with-openlink=ścieżka_do_openlink).
Wszystko (podłączenie i zapytania) pięknie działa, kiedy próbuję komunikować
się między maszynami Win bez udziału Linuxa. Także działa pięknie kiedy
uruchamiam aplikacje testowe OpenLink (odbctest i udbctest) - źródła ODBC i
UDBC po stronie klienta czyli Linuxa są skonfigurowane.
Problem występuje dopiero kiedy działam z PHP: wszystkie rozkazy
(odbc_connect, odbc_close, odbc_autocommit, itp) działają doskonale za
wyjątkiem zapytań (odbc_do, odbc_exec, odbc_prepare i odbc_execute). Przy
próbie poprawnego zapytania pojawia sie błąd/ostrzeżenie:
Warning: SQL error: [OpenLink][ODBC][Driver]Driver not capable, SQL state
S1C00 in SQLExecDirect in /dir/index.php on line 22
dla $result = odbc_do ($connection, $query) lub
Warning: SQL error: [OpenLink][ODBC][Driver]Driver not capable, SQL state
S1C00 in SQLPrepare in /dir/index.php on line 23
dla $result = odbc_prepare ($connection, $query).
Dodatkowo dla zapytań błędnych (np. "selec * fro relacja") pojawia się
komunikat:
Warning: SQL error: [OpenLink][ODBC][Microsoft][ODBC Microsoft Access
Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE',
'SELECT', or 'UPDATE'., SQL state S1000 in SQLExecDirect in /dir/index.php
on line 22
dla $result = odbc_do ($connection, $query) lub
Warning: SQL error: [OpenLink][ODBC][Microsoft][ODBC Microsoft Access
Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE',
'SELECT', or 'UPDATE'., SQL state S1000 in SQLPrepare in /dir/index.php on
line 23
dla $result = odbc_prepare ($connection, $query).
Wydaje mi się że problem leży na drodze współpracy php ze sterownikiem iodbc
ale nie wiem jaki ???????? i jak go usunac ????????
Czy ktoś może zna rozwiązanie tego problemu ?
pozdrawiam
Jerzy Kut / Rzeszów
Marko Pitkanen (2000-11-14 22:34 Solution: Driver not capable error
PHP+Linux+OpenLink-Windows <MS-ACCESS) napisał, że w źródle PHP 4.0.3pl1
ext/odbc/php_odbc.c trzeba zmienić:
1) wszystkie SQLINTEGER na SDWORD
2) ostatnie dwa wystąpienia SQL_CURSOR_DYNAMIC na SQL_CURSOR_FORWARD_ONLY
Marko Pitkanen mówi, że działa mu to całkiem sprawnie a i mnie (PHP4.0.4)
wszystko
ruszyło nawet z poleceniami odbc_exec i odbc_do.
Boję sie tylko, żeby te zmiany nie powodowały błędów przy zapisie do bazy
danych MS-ACCESS w najmniej pożądanych momentach - ale to trzeba będzie po
prostu sprawdzić...
Jeżeli ktoś zna bardziej eleganckie (bez poprawek w kodzie źródłowym)
rozwiązanie problemu proszę o maila na usenet.
Jerzy Kut
jer@inquad.com
"Jerzy Kut" <jer@inquad.comwrote in message
Mam problemy z zapytaniami do bazy MS-ACCESS z PHP.
Konfiguracja:
1. Linux:
- DEBIAN 2.2
- Apache 1.3.14
- PHP4.0.4
- OpenLink iODBC 2.0.12
- OpenLink uDBC 1.0.1
- OpenLink driver 1.0.0
- glibc2
2. Windows2000:
- OpenLink 3.2
Na Win2000 zainstalowany jest MS-ACCESS i skonfigurowane w ODBC źródło
danych - maszyna pracuje jako serwer bazy danych. Plik .mdb również
znajduje
się na tej maszynie. Dodatkowo zainstalowany jest Most OpenLink ODBC-ODBC
Bridge wersja 3.2. Uruchomiony jest broker.
Win2000 jest oczywiście klientem dla www generowanego przez PHP na
Linuxie.
Linux jest serwerem www z PHP. Zainstalowany jest pakiet OpenLink w tej
samej wersji co na Win (pliki pobrane z OpenLink dla wersji mostu 3.2).
Wkompilowany jest w Apache moduł PHP a w PHP z kolei sterowniki iODBC
(--with-iodbc=ścieżka_do_openlink) oraz OpenLink
(--with-openlink=ścieżka_do_openlink).
Wszystko (podłączenie i zapytania) pięknie działa, kiedy próbuję
komunikować
się między maszynami Win bez udziału Linuxa. Także działa pięknie kiedy
uruchamiam aplikacje testowe OpenLink (odbctest i udbctest) - źródła ODBC
i
UDBC po stronie klienta czyli Linuxa są skonfigurowane.
Problem występuje dopiero kiedy działam z PHP: wszystkie rozkazy
(odbc_connect, odbc_close, odbc_autocommit, itp) działają doskonale za
wyjątkiem zapytań (odbc_do, odbc_exec, odbc_prepare i odbc_execute). Przy
próbie poprawnego zapytania pojawia sie błąd/ostrzeżenie:
Warning: SQL error: [OpenLink][ODBC][Driver]Driver not capable, SQL state
S1C00 in SQLExecDirect in /dir/index.php on line 22
dla $result = odbc_do ($connection, $query) lub
Warning: SQL error: [OpenLink][ODBC][Driver]Driver not capable, SQL state
S1C00 in SQLPrepare in /dir/index.php on line 23
dla $result = odbc_prepare ($connection, $query).
Dodatkowo dla zapytań błędnych (np. "selec * fro relacja") pojawia się
komunikat:
Warning: SQL error: [OpenLink][ODBC][Microsoft][ODBC Microsoft Access
Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE',
'SELECT', or 'UPDATE'., SQL state S1000 in SQLExecDirect in /dir/index.php
on line 22
dla $result = odbc_do ($connection, $query) lub
Warning: SQL error: [OpenLink][ODBC][Microsoft][ODBC Microsoft Access
Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE',
'SELECT', or 'UPDATE'., SQL state S1000 in SQLPrepare in /dir/index.php on
line 23
dla $result = odbc_prepare ($connection, $query).
Wydaje mi się że problem leży na drodze współpracy php ze sterownikiem
iodbc
ale nie wiem jaki ???????? i jak go usunac ????????
Czy ktoś może zna rozwiązanie tego problemu ?
pozdrawiam
Jerzy Kut / Rzeszów
| chodzi o wyciagniecie danych z bazy na strony www?
| Jesli NT to najlepiej ASP.
| Nie chodziło mi o same korzystanie z bazy tylko o samo przygotowanie do
| korzystania.
| Z tego co wiem to po utworzeniu bazki trzeba ja umieścić (tak przy
okazji
to
| gdzie się ją wrzuca ?) na www, potem zeby mozna bylo z niej korzystac
trzeba
| utworzyc DSN znaczy sie źrodlo danych. No i nie wiem czy samemu sie je
jakos
| tworzy czy trzeba dac znac adminowi. Niestety w bazach-www jeste
zielony
:)
| A może wogóle się to inaczej robi ?? Może nie tworzy sie DSN-a ??
| A może ktoś nakierowalby mnie na jakies faq-i, opisy itp. lub opisał
cały
| proces na liscie ?
Zakladam ze korzystasz z ASP i choc troche wiesz jak sie uzywa obiektow
db.
DSN tworzysz zalenie od bazy danych. Niektore (np. ms sql 7) maja tzw
provaidery ktore nie potrzebuja dsn,
Laczysz sie tak:
Conn.ConnectionString =
"PROVIDER=SQLOLEDB;SERVER=nazwa_serwera;UID=login;" & _
"PWD=password;DATABASE=nazwa_bazy_danych"
Mozna rowniez nie korzystac z dsn, pomagajac sobie MapPath np:
Set MyConn = Server.CreateObject("ADODB.Connection")
conString = "DBQ=" & Server.MapPath("MyDatabase.mdb")
Myconn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & conString
SQL="Select * from employee"
ta metoda podoba mi się :))
http://www.devasp.com/samples/datamappath.asp
wiec istnienie dsn zalezy jak chcesz sie laczyc do bazy ( porownanie
http://www.powerasp.com/content/database/dsn_vs_dnsless.asp )
Jak sie laczyc z baza:
http://mavweb.net/asp-samples/database-connection-strings.asp
http://www.web-savant.com/users/kathi/asp/samples/tut/Database_Connec...
sp
To polecam:
http://www.aspin.com/home/tutorial/database/dbconn/dsnless
http://www.aspin.com/home/tutorial/database/dbconn
Mozesz sprobowac bez dsn, nie pytajac sie admina, jesli nie zadziala to
wtedy trza swistaka zagadac:))
jak ja tego nie lubię :))))
Napisz jaka bazke chcesz uzywac i czy to jest asp (bo moze zbednie sie
rozpisuje). Wiecej tez na priva zapraszam.
bazka bedzie prawdopodobnie w accessie lub w foxie ( to prosta baza i zależy
jaki będę miał humor :) )
a jeśli chodzi o asp to rzeczywiście używam asp tylko że nie piszę w
vbscripcie a w perlu (ale niezależnie od tego bardzo mi pomogłeś bo poprostu
przerobię vbscript na perla)
Dzięki piękne za pomoc
pozdrawiam,
arnee
© 2009 Najlepszy miesiąc kawalerski w Polsce !!! - Ceske - Sjezdovky .cz. Design downloaded from free website templates