| Cokolwiek bym nie stosowal, to ciagle pokazuja sie bledy (np. nie
| przechodza
| rzeczy typu Dim db As Database, Dim db As DBO.database, itd).
Chyba podstawowa sprawa w Twoim przypadku to wyspecyfikowanie biblioteki
dostepu do danych.
Te DAO, ADO ktorych nie rozumiesz musisz przynajmniej nauczyc
sie rozpoznawac, bo nie nalezy mieszac ze soba obiektow z roznych
bibliotek.
<cut
Serdeczne dzieki za pomoc!!!
Juz doszedlem do tego, ze mam ADO a nie DAO :).
Znalazlem w necie m.in. taki przyklad inicjowania polaczenia z baza:
Dim cn As New ADODB.Connection
Dim rs As New Recordset
cn.ConnectionString = _
"DRIVER=Microsoft Access Driver (*.mdb);" & _
"UID = admin;" & _
"DBQ=g:usersharedaccess
ca.mdb;"
cn.OpenMoje pytanko jest wiec takie: w jakiej formie zapisac
connectionString tak, abym mial dostepdo danych umieszczonych nie w pliku
msAccesa (*.mdb) tylko w na SQL Serwerze???Serdecznie pozdrawiam, B.
| Juz doszedlem do tego, ze mam ADO a nie DAO :).
| Znalazlem w necie m.in. taki przyklad inicjowania polaczenia z baza:
| Dim cn As New ADODB.Connection
| Dim rs As New Recordset
| cn.ConnectionString = _
| "DRIVER=Microsoft Access Driver (*.mdb);" & _
| "UID = admin;" & _
| "DBQ=g:usersharedaccess
ca.mdb;"
| cn.OpenMoje pytanko jest wiec takie: w jakiej formie zapisac
| connectionString tak, abym mial dostepdo danych umieszczonych nie w
| pliku msAccesa (*.mdb) tylko w na SQL Serwerze???
Jeśli nie istnieją inne ważne przyczyny, to pytam dlaczego uzywasz mdb
zamiast adp ?
Plik adp podpinasz bezpośrednio do SQL Servera, a wszelkie connection
tworzysz poprzez proste odwołanie do CurrentProject.Connection
Thx za wszelkie podpowiedzi.
Artur
... podejmuje probe nazwiazania polaczenia z
baza (jako dsn ustawiam: "ODBC;DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)
};DSN='';DBQ=\kompazyaza.mdb"), otrzymuje komunikat: "uzytkownik 'xxx'
na komputerze 'kompxxx' wprowadzil baze danych w stan uniemozliwiajacy jej
otwarcie lub zablokowanie".
Byc moze takie uzycie DSN powoduje otwarcie bazy w trybie
"exclusive". Zobacz co sie stanie jesli uzyjesz DSN zdefiniowanego
permanentnie w menadzerze zrodel ODBC.
Ciao, Smyk
Przeczytaj wszystkie posty z tego wątku
Mam dwie tabele sprawy i klienci. Wprowadzam rekord w tabeli sprawy.
Wartosc
klient pobieram z listy zapytania klient. Ustawianiona jest relacja.
Wprowadzenie danych do pola Sprawy.klient jest wymagane. Nie wypelniam
pola
Sprawy.klient i naciskam strzalke w dól aby wprowadzic kolejny rekord.
Mam pytanie czy można obsłuzyć ten bład na poziomie accessa. Program jest
napisany w Delphi. uzywa tabeli accesowej. W delphi da sie ten blad
obsluzyc. Tylko nie mam kodu i chcialbym to sprobowac ustawic/obsluzyc w
accessie. Tyllko nie wiem czy da sie to zrobic ??? a jak da sie zrobic to
jak
[Microsoft][ODBC Microsoft Access Driver] The field 'Sprawy.Klient' cannot
contain a Null value because the Required property for this field is set
to
True. Enter a value in this field.
Angielski komunikat mówi sam za siebie. W Accessie (definicja tabeli) masz
już to obsłużone (i dostajesz zwrot do Twojej aplikacji), resztę musisz
zrobić w Delphi.
Pozdr,
GB
| Mam dwie tabele sprawy i klienci. Wprowadzam rekord w tabeli sprawy.
Wartosc
| klient pobieram z listy zapytania klient. Ustawianiona jest relacja.
| Wprowadzenie danych do pola Sprawy.klient jest wymagane. Nie wypelniam
pola
| Sprawy.klient i naciskam strzalke w dól aby wprowadzic kolejny rekord.
| Mam pytanie czy można obsłuzyć ten bład na poziomie accessa. Program
jest
| napisany w Delphi. uzywa tabeli accesowej. W delphi da sie ten blad
| obsluzyc. Tylko nie mam kodu i chcialbym to sprobowac ustawic/obsluzyc w
| accessie. Tyllko nie wiem czy da sie to zrobic ??? a jak da sie zrobic
to
| jak
| [Microsoft][ODBC Microsoft Access Driver] The field 'Sprawy.Klient'
cannot
| contain a Null value because the Required property for this field is set
to
| True. Enter a value in this field.
Angielski komunikat mówi sam za siebie. W Accessie (definicja tabeli) masz
już to obsłużone (i dostajesz zwrot do Twojej aplikacji), resztę musisz
zrobić w Delphi.
Pozdr,
GB
Dzieki za informacje !!!!!!!!!!
Teraz juz wiem ze musze miec kod w Delphi. Tak podejrzewałem ale musialem
sie upewnic.
Pozdrawiam
Robert
Witam
Mam następujący problem: utworzyłem bazę danych z własnym plikiem
zabezpieczeń, podpietym do bazy za pomocą skrótu z użyciem komendy
/wrkgrp. Oczywiście wszystkie obiekty w bazie maja zmienionego właściciela
z admina na moją własną nazwę. Wszystko działą super
Teraz chciałbym dobrać się do tych danych przy pomocy programu Statistica
7.0. Próbuję utworzyć połączenie do tej bazy za pomocą ODBC lub Jet (z
silnika Statistica Querry) ale nigdzie nie mogę znaleźć opcji pozwalającej
podpiąć własny plik zabezpieczeń.
http://www.connectionstrings.com/
i tam ODBC:
Workgroup:
"Driver={Microsoft Access Driver
(*.mdb)};Dbq=C:mydatabase.mdb;SystemDB=C:mydatabase.mdw;Uid=UserName;Pwd=UserPassword;"
"
OLEDB:
Workgroup (system database):
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=somepathmydb.mdb;Jet
OLEDB:System Database=system.mdw;User Id=UserName;Password=UserPassword;"
GD
Mam niemały problem na styku Access - Excel
Otóż potrzebuję stworzyć kwerendę parametryczną
w excelu, która będzie pobierać wartości parametrów
z odpowiednich komórek arkusza i wybierze odpowiednie
rekordy z bazy .mdb. Czy ktoś z Was mógłby
podać mi jakieś wskazówki JAK to zrobić? Geniuszem
Accessa i Excela nie jestem, ale pewnie rzeczy potrafię
zrobić.
W momencie, kiedy tworze źródło danych (microsoft
access driver *.mdb) to kwerendę w excelu owszem - odpalę,
ale na nic zdają się próby wprzęgnięcia parametrów
pobranych z komórki arkusza.. no i mam z tym zgryz...
Z góry dziękuję za pomoc
Bartosinski
Cześć.
Mam niemały problem na styku Access - Excel
Otóż potrzebuję stworzyć kwerendę parametryczną
w excelu, która będzie pobierać wartości parametrów
z odpowiednich komórek arkusza i wybierze odpowiednie
rekordy z bazy .mdb. Czy ktoś z Was mógłby
podać mi jakieś wskazówki JAK to zrobić? Geniuszem
Accessa i Excela nie jestem, ale pewnie rzeczy potrafię
zrobić.
W momencie, kiedy tworze źródło danych (microsoft
access driver *.mdb) to kwerendę w excelu owszem - odpalę,
ale na nic zdają się próby wprzęgnięcia parametrów
pobranych z komórki arkusza.. no i mam z tym zgryz...
Najprosciej będzie użyć MSQuery do zbudowania kwerendy
która zwróci ci rekordy które potrzebujesz.
Tworzysz zwykłą kwerendę wybierającą z odpowiednimi warunkami . Zapisujesz
ja jako plik kwerendy.
W Excelu, menu Dane - Uruchom zapisaną kwerendę , wybierasz tą utworzoną.
Jeżeli w MSQuery utworzysz kwerendę parametryczną, to w Excelu mozliwe jest
podanie komórki z której ten parametr
ma byc pobierany np. data.
Wtedy będziesz miał zwracane rekordy spełniajace kryterium.
Marek Sikora
a oto fragment mojego programu
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
"DBQ=C:Documents and SettingsjaPulpitasp_testslownik.mbd"
Conn.Open
moze mi ktos pomoc???
z gory dzieki
nara
empirium.
On Thu, 22 Apr 2004 00:11:41 +0200, "empirium" <empir@o2.plwrote:
mam pytanie pisze program w asp ktory ma sie laczyc z baza danych accesa ale
za cholere sie nie chce sie znia polaczyc, wpisuje wszystko idealnie tak jak
jest w knigach i nic caly czas mi wyskakuje taki blad
"
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Sterownik ODBC Microsoft Access ]Błąd ogólny Nie można otworzyć
klucza rejestru 'Temporary (volatile) Jet DSN for process 0xab8 Thread 0xc34
DBC 0x224d014 Jet'"
a oto fragment mojego programu
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
"DBQ=C:Documents and SettingsjaPulpitasp_testslownik.mbd"
Conn.Open
w access nie ma plików *.mbd polecam slownik.mdb
pozdrawiam
roemk
Chcę pobrać z Access kwerendę poprzez parametr, do wyświetlenia na stronie
www. Jeżeli otworzę baze przez Server.MapPath tzn. :
SET cn = Server.Createobject("ADODB.Connection")
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.Open Server.MapPath("./test2000.mdb")
TO wtedy jest OK.
Natomiast ja potrzebuje odwołać się do bazy accessa poprzez fizyczne podanie
ścieżki dostępu i jeżli zrobie tak:
Set conn = Server.CreateObject("ADODB.Connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=C:Inetpubwwwroot
owy est.mdb"
conn.Open DSNtemp
TO kwerenda z parametrem nie działa pojawia się błąd:
"procedura SetParameterInfo nie została wywołana"
Myślę, że błąd tkwi w tej linii: cmd.ActiveConnection = conn
Ale CO sie dzieje?????
Mariusz
SELECT Name
FROM MSysObjects
WHERE Name Not Like "MSys*" AND Type=1
z poziomu skryptu ASP, otrzymuje blad:
Numer błędu:
-2147217911
Źródło błędu:
Microsoft OLE DB Provider for ODBC Drivers
Opis błędu:
[Microsoft][ODBC Microsoft Access Driver] Record(s) cannot be read; no read
permission on 'MSysObjects'.
Q: w jaki sposob moge uzyskac dostep do tabeli MSysObjects ?
Dziekuje z gory za wszelkie informacje.
Pozdrawiam.
Użytkownik "Jacek "Stawik" Stawicki" <sta@catv.retsat1.com.plnapisał w
wiadomości | Witam.
| Dziekuje za pomoc przy moim ostatnim pytaniu i... mam kolejne:
| Po wykonaniu instrukcji:
|
| SELECT Name
| FROM MSysObjects
| WHERE Name Not Like "MSys*" AND Type=1
|
| z poziomu skryptu ASP, otrzymuje blad:
|
| Numer błędu:
| -2147217911
| Źródło błędu:
| Microsoft OLE DB Provider for ODBC Drivers
| Opis błędu:
| [Microsoft][ODBC Microsoft Access Driver] Record(s) cannot be read; no
read
| permission on 'MSysObjects'.
|
| Q: w jaki sposob moge uzyskac dostep do tabeli MSysObjects ?
|
Po pierwsze - nie znam się, więc będzie to gdybanie:
1.
Access do pracy potrzebuje pliku grupy roboczej, w której zapisane są
informacje o grupach i użytkownikach.
Nawet baza niezabezpieczona jest otwierana z takim plikiem:
WINDOWSSYSTEMSystem.mdw
(domyślnym, na domyślnym koncie:Admin, bez hasła)
Prawdopodobnie - skoro mówisz, że nie masz Access'a, nie masz więc tego
pliku.
2.
Sterownik musi dostać informację o lokalizacji tego pliku (?)
3.
Baza jest zabezpieczona - a Ty nie masz ani pliku grupy roboczej (*.mdw)
ani nie znasz hasła (wątpliwe)
KN
Jest taki problem, otoz przy odczycie danych z bazy poprzez ASP, czesto
pojawia sie komunikat "Too many client tasks" nie odwoluje sie do bazy
poprzez odbc, tylko tak:
Set conn = Server.CreateObject("ADODB.Connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("plikbazy.mdb")
conn.Open DSNtemp
Strona nie jest jeszcze czesto odwiedzana, a juz pojawiaja sie bledy "Too
many client tasks".
Nie wiem czy dotyczy to "zajetosci" samego drivera, bo to nie jedyna strona
korzystajaca z asp na tym serverze.
Czy ustawia sie jakos maxymalna liczbe polaczen?
Jezeli tak to gdzie?
Z gory dzieki za odpowiedz
Arkadiusz Goralski
go@az.pl
Użytkownik Bartek <bar@extreme.net.plw wiadomości do grup
dyskusyjnych napisał:3b5f3@news.vogel.pl...
| Program ktorego uzywa moj znajomy ma baze w Access 97 tad sciagnac
jedna
| tabele baza nie jest zabezpieczona ani uzytkownikiem ani haslem ale
jak
| probuje zrobic Import z Accessa do SQL za pomoca narzedzia SQL import
ans
| Export to mowi ze nie mam prawa do czytania tabeli towary.
| Bardzo prosze o pomoc
Spróbuj narzędzia DTS z Enterprise Managera.
1. Zdefiniuj nowe systemowe źródło w ODBC wskazując bazę MSAccess
2. Uruchom DTS, nowa paczka
3. Wstaw 2 obiekty - "ODBC Data Source", "Microsoft OLE DB..."
4. W obiekcie MSOLEDB wskaż właściwą bazę SQL
4. Utwórz workflow pomiedzy nimi ze wskazaniem źródła i miejsca
docelowego.
5. Uruchom proces (execute)
Po wskazaniu zródła i próbie przejścia dalej czyli do wskazania bazy danych
SQL wyrzuca DTS następujący komunikat
Error Source: Microsoft OLE DB Provider for ODBC Drivers
Error Description:[Microsoft][ODBC Microsoft Access Driver] You do not have
the necessary permissions to use the '(unknown)' object. Have your system
administrator or the person who created this object estabilish the
appropriate permissions for you.
Context: Error during initialization of the provider.
Może to coś wiecej powie
To działa dobrze, strona jest aktywna, dynamicznie zmienia sie zgodnie ze
zrodlem.
Problem polega jednak na tym zeby przegladarka wymagała autoryzacji i w
zaleznosci od uzytkownika dane były odpowiednio przefiltrowane.
ps
baza jest napisana w accessie2000, komputer z którego pobierane sa dane na
strone www pracuje non stop na łączu sdi.
Jak to zrobic najprosciej i najłatwiej bez ponoszenia duzych kosztów.
Ewentualnie gdzie szukac pomocy w tej sprawie.
Jezeli ktos ma jakies doswiedczenia w tej sprawie to prosze o pomoc
Z powazaniem
Jacek
Dim DSNtemp, conn, sql, rst
Set conn = Server.CreateObject("ADODB.Connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=DSNtemp & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSNtemp
sql = "insert into News (Date, Title, Text, Status) Values ('" &
Request.Form("date") & "', '" & Request.Form("title") & "', '" &
Request.Form("text") & "', '1'); "
Set rst = Conn.Execute(sql)
-------------------
a rezultat jest taki:
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO
statement.
a pola sie na pewno zgadzaja, bo projekt tabeli newsy jest taki:
id autonumer
date text
title text
text text
field2 text
field3 text
status liczba
pomozcie
adam
W takim razie bedziesz musial udostepnic udzial
na ktorym umieszczony jest plik MDB.
Moge to zrobic, ale po ftp a to mnie nie urzadza
| Jest jakies oprogramowanie (moze ODBC) ktore pozwoli podlaczyc tabele z
| tego pliku mdb i udostepnic w podobny sposob jak np. baze Mysql z
wyjsciem
| na jakims porcie i uwierzytelnianiem ??
JetEngine (system za plikami MDB) jest silnikiem plikowym
a nie silnikiem C/S. Dostep do danych obywa sie przez bezposrednie
czytanie/pisanie z/do pliku, a nie przez obsluge zapytan SQL.
Ot tak bez niczego nie da sie.
To dziwne bo w Windowsie jako zrodlo danych w ODBC mozna wskazac accsesowy
plik mdb uzywajac Microsoft Access Driver
To dziwne bo w Windowsie jako zrodlo danych w ODBC mozna wskazac accsesowy
plik mdb uzywajac Microsoft Access Driver
Yhm, zgadza się. Jet jest "osobny" względem Accessa. Jak zainstalujesz sobie
Jet-a na Linuxie, też będziesz mógł go sobie ustawić w ODBC. Powodzenia.
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] Disk or network error.
Sprawdzałem uprawnienia są ok
Nie mam juz pomysłów
Łączę się z tabelą w pliku mdb (poniższa funkcja) i ładuję w zbiorze
rekordów do niej dane
odczytane z tabel sqlowskich...i na końcu chcę przeżucić te dane z tabeli
mdb do tabeli sqlowskiej ale chcę to zrobić jakąś procedurą (przepisywanie w
zbiorze rekordów nie wchodzi w grę)
Czy jest możliwe przepisanie lub update danych z jednej tabeli do drugiej
jeśli nie należą do tej samej bazy danych?
z góry wielkie dzięki
Function polaczenie_plik()
Dim conn As New ADODB.Connection
Dim dsntemp As String
dsntemp = "DRIVER={Microsoft Access Driver (*.mdb)}; "
dsntemp = dsntemp & "DBQ=d:aza_tmp.mdb"
conn.Open dsntemp
dim zr....
zr.open "tabela",conn
End Function
Przykład:
mam plik ASP z kodem:
<%
sql = "INSERT INTO tabela (nazwisko) VALUES ('Bąk');"
openstr = "driver={Microsoft Access Driver (*.mdb)};" &_
"dbq=" & Server.MapPath("mojabaza.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open openstr
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, cn, 3, 3
... itd. (zamknięcie połączenia z bazą...)
%
Po wykonaniu, do tabeli zostanie wpisane "Bąk" zamiast "Bąk".
Dlaczego ???
Witam
Pisze program w jezyku Visual C++ do moje pracy mgr
czas mnie goni a napotkalem pewien duzy problem wiec
moze ktos moze mi pomoc. Mianowicie moj program
korzysta z bazy danych Accessa poprzez ODBC.
Wiec to ODBC musi zostac na komputerze docelowym czasem
zainstalowane.
Uzylem do tego programu Install Shield Express 2.
Utworzylem projekt typu - Visual C++.
W programie instalacyjnym mam wlaczane instalowanie
ODBC dla Accessa.
Po zainstalowaniu programu ODBC nie pracuje poprawnie
i zrodlo danych nie zostaje zainstalowane. Gdy
chcialbym recznie je dodac w Panelu Sterowania (32-bit ODBC)
to po wybraniu rodzaju sterownika (Access)
Pojawia sie blad:
The setup routines for The Microsoft Access Driver (*.mdb) ODBC driver
could not be loaded due to system error code 1157
A nastepnie :
Could not load the setup or translator library.
To samo sie dzieje przy probie instalowania
innego sterownika np dBase
Czy ktos moze mi powiedziec jak z tego wybrnac?
(nie chcialbym korzystac z bazy przez DAO aby
w przyszlosci ewentualnie mozna bylo zmieniac typ bazy)
Robert Kolud
rob@wsi.edu.pl
Czy ktos moze spotkal sie z nastepujacym bledem:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine
cannot open the file '(unknown)'. It is already opened exclusively by
another user, or you need permission to view its data.
Blad pojawia sie po próbie odwolania do zródla danych ODBC z poziomu ASP
poprzez ADO. W przypadku odwolywania sie do tegoz samego zródla danych z
poziomu programu VisualBasic równiez za pomoca ADO wszystko jest OK.
Z góry dzieki za pomoc,
Tomek P.
portalto wrote:
Witam serdecznie,
Czy ktos moze spotkal sie z nastepujacym bledem:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine
cannot open the file '(unknown)'. It is already opened exclusively by
another user, or you need permission to view its data.
Blad pojawia sie po próbie odwolania do zródla danych ODBC z poziomu ASP
poprzez ADO. W przypadku odwolywania sie do tegoz samego zródla danych z
poziomu programu VisualBasic równiez za pomoca ADO wszystko jest OK.
Czasem sie zdarza, ze w stringu otwierajacym polaczenie pisze sie DNS zamiast
DSN - sprawdz to u siebie. Sprawdz tez usera i haslo.
Jesli to nie da efektu, to sprobuj jeszcze przeniesc zrodlo danych z zakladki
"User DSN" do "System DSN".
Nie uzywam VB, ale wszystkie polaczenia testuje w Accessie (poprzez tabele
polaczone, importowane z ODBC) - zawsze miarodajnie testowal polaczenia.
Pozdrawiam,
Johny.
i dostaje w zamian:
ADODB.Connection error '800a01ad'
ActiveX component can't create object
/test.asp, line 7
nie rozumiem ?!?!
co jest przyczyna....mam IIS 3.0 upgreadniety o obsluge ASP???????
1. Zły typ recordsetu.
2. Zapytanie, które uniemożliwia aktualizację DB.
Dim conn, strQ
Dim strConnection
Set conn = Server.CreateObject("ADODB.Connection")
'strConnection = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;Data Source=d:/mroova.mdb;"
strConnection = "DBQ=d:mroova.mdb;DRIVER={Microsoft Access Driver (*.mdb)};"
conn.Open strConnection
strQ = "update admin set login='nowy_login'"
conn.Execute(strQ)
taki jest kod.
jak uzywam selecta wszystko chodzi jak trzeba a insert i update juz nie.
monika wrote:
| <connectiondefs
| <connection name="prtl"
| <usernameadmin</username
| <password<password/
| <dburljdbc:odbc:ksiazki</dburl
| <driversun.jdbc.odbc.JdbcOdbcDriver()</driver
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| <autocommittrue</autocommit
| </connection
| </connectiondefs
| Oracle XDK Java 9.2.0.4.0 Production
| XSQL-007: Cannot acquire a database connection to process page.
| java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver()
A sterowniki JDBC masz?
No właśnie,żadnych sterowników JDBC nie mam, w "źrodle danych ODBC" w panelu
sterowania, ustanawiam połączenie ODBC z baza w accessie ,wybieram wtedy
sterwonik Microsoft Access Driver i nie wiem czy tak być powinno?
Poza tym żadnych innych sterowników JDBC nie mam, może wiesz jakie powinny
być???
Będę bardzo wdzięczna:)
Pozdrawiam - Monika:)
--
Sławomir Szyszło  mailto:slasz@poczta.onet.pl
Nadprzewodnik sudecki klasy 10 kV
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
CDatabase database;
CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
CString sDsn;
CString SqlString_read, SqlString_add;
CString m_atr;
CString sFile = "c:\baza.mdb";
sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,sFile);
TRY
{
database.Open(NULL,true,false,sDsn);
CRecordset recset( &database );
SqlString_read = "SELECT author FROM DANE";
recset.Open(CRecordset::forwardOnly,SqlString_read,CRecordset::appendOnly);
while( !recset.IsEOF() )
{
recset.GetFieldValue("atrybut",m_atr);
m_wynik+=m_atr+"
";
UpdateData(false);
recset.MoveNext();
}
database.Close();
}
CATCH(CDBException, e)
{
// If a database exception occured, show error msg
AfxMessageBox("Database error: "+e-m_strError);
}
END_CATCH;
:. Artur Szeja :.: ArtuS ::. asz@us.edu.pl .::
:. Badanie dna oka podobno rozja¶nia umys³, ale ja tam nie wiem .::
CDatabase database;
CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
CString sDsn ;
CString sFile = "d:\db\db1.mdb";
CString sDSN = "bbb";
1.
sDsn.Format("ODBC;DRIVER={%s};DSN=%s ",sDriver,sDSN);
database.Open(NULL,false,false,sDsn);
2.
sDsn.Format("ODBC;DRIVER={%s};DSN='' ; DBQ=%s",sDriver,sFile);
database.Open(NULL,false,false,sDsn);
Zakladajac, ze mam skonfigurowane zrodlo danych "bbb"
polaczone z powyzszym plikiem .mdb nie wiem dlaczego w pierwszym przypadku
po database.Open wyskakuje mi okienko do wybrania pliku np.*.mdb.
Jaki ma cel podawanie na sztywno sciezki do
pliku jesli mam DSN.
Moglby mi ktos rozjasnic sprawe ?
z gory dzieki :-)
fc
lacze sie przez odbc uzywajac CDatabase;
CDatabase database;
CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
CString sDsn ;
CString sFile = "d:\db\db1.mdb";
CString sDSN = "bbb";
1.
sDsn.Format("ODBC;DRIVER={%s};DSN=%s ",sDriver,sDSN);
database.Open(NULL,false,false,sDsn);
2.
sDsn.Format("ODBC;DRIVER={%s};DSN='' ; DBQ=%s",sDriver,sFile);
database.Open(NULL,false,false,sDsn);
Zakladajac, ze mam skonfigurowane zrodlo danych "bbb"
polaczone z powyzszym plikiem .mdb nie wiem dlaczego w pierwszym przypadku
po database.Open wyskakuje mi okienko do wybrania pliku np.*.mdb.
Jaki ma cel podawanie na sztywno sciezki do
pliku jesli mam DSN.
Zrob po prostu:
CDatabase database;
database.Open("bbb");
i bedzie OK...
yamma
dla np. accessa
CString tmp = "ODBC;DRIVER={Microsoft Access Driver
(*.mdb)};DBQ=c:aza.mdb";
m_baza.Open(NULL,FALSE,FALSE,tmp);
dla innych pewnie analogicznie.
pozdrawiam
pawel jaworski
"Moje Newsy" <a@skg.plwrote in message VC++6.0 win2000
CDatabase db;
LPCTSTR lpszConnectString = "ODBC;DSN=xxxxxx";
//OpenEx(LPCTSTR lpszConnectString)
db.OpenEx(lpszConnectString); //powoduje wyswietlenie okna ODBC
db.OpenEx("ODBC;DSN=xxxxxx"); //łączy z bazą danych
Jak przekazać parametry podłączenia do bazy aby nie było okna ODBC???
ponizszy kod generuje plik mdb
retcode = SQLConfigDataSource(NULL,ODBC_ADD_DSN,(LPSTR)"Microsoft Access
Driver (*.mdb)","CREATE_DB=C:\Sample.mdb General ");
jednak nie mozna go otworzyc z poziomu Accessa, udaje sie to tylko na
okreslonych maszynach.
ktos mial jednakowy problem ?
dzieki
"pawel" <he@alpha.net.plwrote in message
Hej !
ponizszy kod generuje plik mdb
retcode = SQLConfigDataSource(NULL,ODBC_ADD_DSN,(LPSTR)"Microsoft Access
Driver (*.mdb)","CREATE_DB=C:\Sample.mdb General ");
jednak nie mozna go otworzyc z poziomu Accessa, udaje sie to tylko na
okreslonych maszynach.
ktos mial jednakowy problem ?
dzieki
bool bres=SQLConfigDataSource(Handle,ODBC_ADD_DSN, cDriver.c_str(),
cAttribute.c_str());
if(!bres)
ShowMessage("Compact database failed!");
else
ShowMessage("Database is compacted!");
}else
{
ShowMessage("Load odbccp32.dll failed!");
}
FreeLibrary(LHandle);
}
DziĂŞki!
JesteÂście denni!!
Artur Lew
CString CTestSet::GetDefaultConnect()
{
CString str_baza;
TCHAR szEXEPath[MAX_PATH], szDrive[MAX_PATH], szDir[MAX_PATH];
GetModuleFileName(NULL, szEXEPath, MAX_PATH);
_splitpath(szEXEPath, szDrive, szDir, NULL, NULL);
str_baza.Format("%s", StrCat(szDrive, szDir));
return "DBQ="+str_baza+"test.mdb;DRIVER={Microsoft Access Driver (*.mdb)}";
}
Jak to oceniacie? Czy ma to ręce i nogi? Czy raczej można to jakoś uprościć?
"Kanada" <ka@polbox.comwrote in message
Dzięki za pomoc, bardzo mi się przydała :)
Na razie ćwiczę na prostej bazie Access'a.
Wymyśliłem coś takiego, że baza danych znajduje się w tym samym katalogu
co
sam program główny.
Dzięki temu nawet po zmianie nazwy katalogu baza danych jest znajdywana
przez program.
Zmieniłem trochę metodę w CRecordset:
CString CTestSet::GetDefaultConnect()
{
CString str_baza;
TCHAR szEXEPath[MAX_PATH], szDrive[MAX_PATH], szDir[MAX_PATH];
GetModuleFileName(NULL, szEXEPath, MAX_PATH);
_splitpath(szEXEPath, szDrive, szDir, NULL, NULL);
str_baza.Format("%s", StrCat(szDrive, szDir));
return "DBQ="+str_baza+"test.mdb;DRIVER={Microsoft Access Driver
(*.mdb)}";
}
Jak to oceniacie? Czy ma to ręce i nogi? Czy raczej można to jakoś
uprościć?
Nie jestem przekonany jak to bedzie z wydajnoscia. Bo gdy bedziesz korzystal
z takigo rekordsetu to za kazdym razem bedzie dokonywane polaczenie z baza
danych, a to nie jest zbyt szybkie. Nie lepiej stworzyc obiekt CDatabase i
tam wyspecyfikowac string polaczenia a nastepnie tworzyc obiekty CRecordset
podajac wskaznik do obiektu CDatabase jako argument konstruktora ?
Poprostu nie mam pytan .... po 3h wlaczylem Visuala i nie ma juz
problemu z ConInitalize, ale dla :
_bstr_t strCnn("DRIVER={Microsoft Access Driver
(*.mdb)};UID=admin;DBQ=c:\db.mdb");
wyrzuca:
SOLEN_RIP.obj : error LNK2019: unresolved external symbol "wchar_t *
__stdcall _com_util::ConvertStringToBSTR(char const *)"
(?ConvertStringToBSTR@_com_util@@YGPA_WPBD@Z) referenced in function
"public: __thiscall _bstr_t::Data_t::Data_t(char const *)"
(??0Data_t@_bstr_t@@QAE@PBD@Z)
SOLEN_RIP.obj : error LNK2019: unresolved external symbol "char *
__stdcall _com_util::ConvertBSTRToString(wchar_t *)"
(?ConvertBSTRToString@_com_util@@YGPADPA_W@Z) referenced in function
"public: char const * __thiscall _bstr_t::Data_t::GetString(void)const
" (?GetString@Data_t@_bstr_t@@QBEPBDXZ)
_bstr_t strCnn("DRIVER={Microsoft Access Driver
(*.mdb)};UID=admin;DBQ=c:\db.mdb");
Zastanawiam się, po co męczyleś sie tak z ADODB (OLEDB)
skoro i tak z ConnectionStringu wynika ze
z "bazą" (plikiem Accessowym) łączysz się
za pomocą sterowników ODBC.
Nie lepiej było darować sobie cała zabawe z bibliotekami COM-owymi
i sporzystać bezpośrednio z ODBC API.
Skoro jednak masz już program w którym rozwiązałeś problemy z ADO
to zastosuj także dedykowane do ADO (OLEDB) sterowniki
w tym wypadku JET 4.0 OLEDB Provider.
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\db.mdb;"
napisy _bstr_t najlepiej inicjować literałami szerokimi, tj.
L"Provider=..." . W przeciwnym razie tracisz czas CPU na wykonanie
konwersji z const char* na const wchar_t* w czasie działania programu.
B.
WIELKIE DZIEKI ZA POMOC WSZYSTKIM KTORZY ODPOWIEDZIELI NA MOJ POST !!!
:)))
fajnie by bylo tez gdybyscie odpowiedzieli na drugie pytanie w poscie ;PPP
czyli:
2) W panelu sterowania mam takie cos jak "Zrodla danych ODBC" po jego
kliknieciu mam na zakladce "DSN uzytkownika" zrodla uzytkownika. Jak
dodac
takie zrodlo z poziomu VC++ ?
Spróbuj poniższego:
BASE_API LONG InstallDataSource(HWND hWnd, LPLONG lpIValue, LPSTR lpszValue)
{
char strPath[256];
char strArguments[512];
strcpy(strPath, lpszValue);
#ifdef DEBUG_BOXES
MessageBox(NULL, strPath, "Komunikat Instalatora (DataSource)", MB_OK);
#endif
sprintf(strArguments, "%s%c %s%c %s %s%c %s%c %s%c %s%c %s%c %s%c %c",
"DSN=XXX_dane", 0,
"DBQ=XXX_dane.mdb", 0 ,
"DefaultDir=",
strPath, 0,
"Description=Baza danych programu XXX", 0,
"DriverId=25", 0,
"FIL=MS Access", 0,
"JetIniPath=odbcddp.ini", 0,
"0UID=", 0,
0);
SQLConfigDataSource(NULL, ODBC_ADD_SYS_DSN,
"Microsoft Access Driver (*.mdb)",
strArguments); /* --Tutaj dodaj obsluge bledow oczywiscie ;) */
return 0;
}
Pozdrawiam
Poruszam zapewne stary i przetrawiony temat w nowej oprawie. Chce mieć dostę
do bazy msaccess z delphi (5 profesional) i moge to zrobić na dwa sposoby
teoretycznie :
1. przez odbc
2. przez sterownik do bazy msaccess w delphi
kiedy robie to przez sterownik delphi to
ustawiam database name na 'd:a1.mdb '
a driver name na MSACCESS lub Microsoft Access Driver i mam błąd :
Invalid parameter
O co chodzi - cojeszcze powinienem ustawic ??
Z góry dziękuje
Pozdrawiam
Andrzej Gicala
Jeżeli chce połączyć sięz baząw accessie to czy wystarczy tylko
skonfigurowanie DSN ?
(czyli panel sterowania-zródła danych ODBC..... -Microsoft Access driver
(*.mdb)
Czy delphi połączy sięz bazą accessa za pomocą samego ODBC ? Czy do
połączenia potrzebny jest BDE?
Z bazą accessa połączyłem się i wszystko jest o.k. Tylko zeby połączyć sięz
bazą accessa troche eksperymentowałem z ODBC i BDE Administratorem. I
chciałbym się zapytać czy w BDE Administarorze trzeba coś ustawiać
koniecznie (mogłem to zrobić nieświadomie, przez przypadek).
Jeżeli chciałbym przenieść swoją aplikację na inny komputer to co na tym
innym kompie musi być zainstalowane? Czy musi być Office lub delphi ?
Pozdrawiam Arek
Mam do was pytanie.
Pytalem juz ostatnio ale nie bylo odpowiedzi.
Problem dotyczy zapisu pola memo do bazy w accesie.
Mianowice:
Jak wykonuje zapis do bazy przy uzuciu metoddy Append/Edit i Post to
jest OK!
A teraz - jak to samo chce zapisac poprzez polecenie SQL (którego forma jest
poprawna)
wylatuje mi blad:
General SQL error.
[Microsoft][ODBC Microsoft Access Driver]String data, right truncated (null)
Wartosc do pola memo przekazuje przez parametr.
Z baza lacze sie przez ODBC i wersja jezykowa jest ustawionya na polska.
Jeszcze jedno. Blad nie zawsze wylatuje. Zalezy on od tego co w polu memo
bedzie wpisane.
Sam nie znalazlem zalezosci pomiedzy bledem a tekstem wpisanym w memo.
Nie wiem co to moze byc ale spotkalo sie z tym bledem kilku moich kolegow i
zaden nie wie co jest przyczyna.
Wersje: DBE 5.11 , Delphi 4.0
Pozdrawiam
Maly
moge prosic o wyjasnienie tych skroto (nie tylko tlumaczenia :-))
ODBC to mniej wiecej wiem co to jest.
Ale jak sprawdzic czy gosc ktory instaluje nasz program ma to, a jak nie
to
jak mu to dodac ???
BDE - (chyba tak się to tlumaczy) Borland Database Engine - pozwala na
podłączenie do programu bazy danych
czyli pośredniczy pomiędzy ODBC a Twoim programem w Delphi (lub BC).
ODBC jest produktem MS i jest zawsze na np. płytach z OfficeXX ( instalka to
plik dataacc.exe) i są to sterowniki do baz danych (w szczególności
Accessa). (A raczej ODBC to każdy kto ma Windowsa to ma - najczęściej jednak
bez zainstalowanych sterowników)
U klienta:
Ja sprawę załatwiam przez Install Shield Expressa . BDE możesz dołączyć
napewno w wersji 2.02 (na płytce z BC4),
ODBC w wersji 2.12 (niestety już za pieniążki).
Jakie sterowniki ma zainstalowane w ODBC można się dowiedzieć po wpisie w
rejestrze:
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INI xxxxxxxxxxxxx
gdzie xxxxxxxxx to konkretny sterownik np Microsoft Access Driver (*.mdb),
lub HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INIODBC Drivers i
przy konkretnym sterowniku jest lub nie wpis "Installed"
Szczeże mówiąc mając gotowe narzędzie nie bawiłam się w ręczną instalcje i
tu więcej nie pomogę
robert wrote:
Witam, sorry ze drugi raz ale byl blad;
Robie programik ktory korzysta z bazy Access`a
Korzystam z aliasu utworzonego w ODBC
Pytanie;
Jak zniemic dynamicznie sciezke do bazy, np. przy pierwszym
uruchomienu progrmu,
Pozdrawiam,
RR
Zrob sobie alias plikowy *.dsn ktory jest zwyklym plikiem tekstowym i
mozesz w nim zmienic co chcesz, jesli chcesz stworzyc alias dynamicznie
w delphi to znalazlem kiedy cos takiego (co prawda w C ale moze sie
przyda ): Create an ODBC Alias
The following will create an ODBC DSN or "alias" for a Microsoft Access
database (ie. MDB). The ODBC API call handles creating the necessary
registry entries. static bool CreateAlias(const char *lpszAlias, const
char *lpszPath, const char *lpszDir, const char *lpszDescription) {
static const char szRequired[] = "Microsoft Access Driver (*.mdb)";
char szParameters[1024];
sprintf(szParameters, "DSN=%s; "
"Description=%s; "
"DefaultDir=%s; "
"DBQ=%s ",
lpszAlias, lpszDescription, lpszDir, lpszPath);
return SQLConfigDataSource(NULL, ODBC_ADD_DSN, szRequired,
szParameters) != 0;
}
--
-------
Eli@space.pl GG2678513
A w jaki sposób instalujesz BDE?
Instalke zrobilem w InstallShield Express for D5.
W BDE Installatin Type - opcja Full BDE Installation,
(step 1/4) BDE Aliases - dodaje nazwe MAGAZYN;
(step 2/4) Save.CFG file ... - zaznaczane;
(step 3/4) Alias Name - MAGAZYN
Path - <ProgramFilesDirMagazyn
Type - Microsoft Access Driver (*.mdb)
(step 4/4) ZAKONCZ
Nastepnie RUN DISK BUILDER - OK
Ale pomimo tego po instalacji na docelowej stacji (W98)
w BDE Administrator nie ma dodanego "mojego"
aliasu MAGAZYN
Co moze byc tego powodem ?
Przeczytaj wszystkie posty z tego wątkuPozdrawiam
Andrzej Godawski
Pytanie moje dotyczy zapisu pola memo do bazy accesowej przez polecenia
SQL.
Zdaza sie ze przy zapise do tablicy pola memo wylatuje mi blad:
General SQL error.
[Microsoft][ODBC Microsoft Access Driver]String data, right truncated (null)
Blad ten jest czasami i zalezy od zawartosci tekstu wpisywanego do pola
memo.
Co ciekawsze wylatuje tylko gdzy uzywam polecenia SQL.
Jak zapis robie zwyklym append i post to jest OK.
Czy moze ktos spotkal sie juz z tym problemem i udalo mu sie go rozwiazac ?
Za wszelkie sugestie byl bym bardzo wdzieczny.
Pozdrawiam
Maly
TYPE: Microsoft Access Driver(*.mdb)
DATABASE NAME: pelna sciezka do pliku bazy
LANGDRIVER : puste pole
ODBC DSN: accsesbaseODBC
reszta standardowo.
Jezeli pomoglo to sie ciesze jak nie to SORRY!
Wiem, ze to nie ta lista, ale na bazch to tam chyba nikogo nie ma albo nie
chca odpowiadac.
Mam nastepujacy problem :
Napisalem programik, ktory tylko kozysta z gotowej bazy accessa (nic w nim
nie zmienia)
Przegladnalem posty, przeczytalem FAQ i nic.
Po zainstalowaniu (IntsallShield) program sie odpala ale jak mu dam zeby
otworzyl baze to nie chce bo pisze, ze: blad w *.dll i przyczepia sie o
alias.
Dodam, ze otwieram baze Accessa i na sytemie z Delphi wszystko chodzi.
Jak skonfigurowac te aliasy w InstallShield'dzie. W samej bazie nie uzywam
aliasow tylko DriverName, a on przy probie otwarcie czepia sie zmiennej
DatabaseName jako Alias.
Troche nie jasno ;-)
Zastosowalem sie do obu porad z FAQ, ale to tez nie pomoglo.
Czy musze miec zainstalowenego Accessa do tego czy drivery delphi potrafia
obsluzyc ta baze.
Zminilem tez driver
ativdll32 na ta nowa biblioteke (w BDE) i nic.
Jak otworzyc ta baze na czystym systemie. Moze zle skonfigurowalem
InstalShielda ?
Prosze o pomoc.
--
Jakub Kasperkiewicz
j@post.pl
ZÓH napisał(a) w wiadomości: <01be17c8$2386fde0$8e237@teko.plocman.pl...
Jak zrobić w/w temat aby zaczął działać - aby było można używać baz Accessa
w Delphi (2,4)
Ano otwierasz ODBC - wpisujesz nowego usera DSN i wybierasz Microsoft Access
Driver. Wszystko uzupelniasz - to raczej jest simply - jak nie to pisz.
Teraz z kolei odpalasz BDE i wpisujesz nowy ODBC driver , wybierasz z listy
Accesa i bedziesz mial tu ta pozycja ktora wpisales w ODBC.
No i teraz jest prosto:
Z komponentow Data Source i np. Table . W Table wybierasz jako alias ten
wpisany przez Ciebie. W table name znajdziesz ta baze na ktora skierowales
katalog w ODBC.
Pewnie troche zamotalem ale pisz jak chcesz dokladniej.
Na razie. Mirek
Mam pytanie w sprawie baz danych. Trzeba mi zrobic program ktory obsluguje
baze danych w formacie ACCESS. OK, baza jest gotowa, dziala. Podpieta do
programu, wszystko dziala tyle ze alias bazy, nazwijmy go AL1, ktory
stworzylem, wskazuje na plik tej bazy razem z pelna sciezka dostepu. Czyli
jak skompilowany program i baze skopiuje do innego katalogu to program juz
bazy nie widzi. Jak mam zrobic takiego aliasa (abo co innego) zeby mozna
bylo program z baza umiescic w dowolnym katalogu ? W aliasie podawalej juz
baze ze siezka i bez niej - jak jest bez sciezki to program nie widzi bazy.
Probowalej ze sterownikiem NATIVE ACCESS, ODBC Microsoft Access Driver
(*.mdb), tworzylem wlasne... :( Nimam ksiazki wiec prosze o porade).
igor
ygr@kki.net.pl
Ygreck napisał(a) w wiadomości: <7ha7sb$2t@sunsite.icm.edu.pl...
Witam!
Mam pytanie w sprawie baz danych. Trzeba mi zrobic program ktory obsluguje
baze danych w formacie ACCESS. OK, baza jest gotowa, dziala. Podpieta do
programu, wszystko dziala tyle ze alias bazy, nazwijmy go AL1, ktory
stworzylem, wskazuje na plik tej bazy razem z pelna sciezka dostepu. Czyli
jak skompilowany program i baze skopiuje do innego katalogu to program juz
bazy nie widzi. Jak mam zrobic takiego aliasa (abo co innego) zeby mozna
bylo program z baza umiescic w dowolnym katalogu ? W aliasie podawalej juz
baze ze siezka i bez niej - jak jest bez sciezki to program nie widzi bazy.
Probowalej ze sterownikiem NATIVE ACCESS, ODBC Microsoft Access Driver
(*.mdb), tworzylem wlasne... :( Nimam ksiazki wiec prosze o porade).
Dorzuć do projektu komponent TDatabase i ustawiaj w jego własności Params
linię PATH=Scieżka do bazy danych, wszystkie TTable i TQuery popodpinaj do
tego komponentu.
Radoslaw Klocek
mailto:rad@pronet.com.pl
ICQ UIN:4560016
Nieruchomosci w Internecie: http://www.pronet.com.pl
On Tue, 11 May 1999 23:37:23 +0200, "Ygreck" <ygr@kki.net.plwrote:
Mam pytanie w sprawie baz danych. Trzeba mi zrobic program ktory obsluguje
baze danych w formacie ACCESS. OK, baza jest gotowa, dziala.
[ciach]
Probowalej ze sterownikiem NATIVE ACCESS, ODBC Microsoft Access Driver
(*.mdb), tworzylem wlasne... :( Nimam ksiazki wiec prosze o porade).
Na http://delphi.koti.com.pl/ wrzuciłem poradę jak to zrobić
ygreck
Krzysztof Borys (Bask) napisał(a) w wiadomości:
<373b68bf.991@posejdon.wpk.p.lodz.pl...
On Tue, 11 May 1999 23:37:23 +0200, "Ygreck" <ygr@kki.net.plwrote:
| Mam pytanie w sprawie baz danych. Trzeba mi zrobic program ktory obsluguje
| baze danych w formacie ACCESS. OK, baza jest gotowa, dziala.
| [ciach]
| Probowalej ze sterownikiem NATIVE ACCESS, ODBC Microsoft Access Driver
| (*.mdb), tworzylem wlasne... :( Nimam ksiazki wiec prosze o porade).
Na http://delphi.koti.com.pl/ wrzuciłem poradę jak to zrobić
Przeczytaj wszystkie posty z tego wątku try {
Class.forName (sun.jdbc.odbc.JdbcOdbcDriver");
String filename = "/root/maciek.mdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver
(*.mdb)};DBQ=";
database+= filename.trim() + ";DriverID=22;READONLY=true}";
DriverManager
Connection con = DriverManager.getConnection( database ,"","");
Statement s = con.createStatement();
ResultSet rec=s.executeQuery("SELECT * FROM TABELA");
while (rec.next()) {
System.out.println(rec.getString("Nazwa"));
}
}
catch (Exception f) {
System.out.println("Error: " + f);
}
con=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access
Driver (*.mdb)};DBQ=ksiazka.mdb");
wszystko poszlo ok, wiec wysylam SQL-a:
INSERT INTO Telefony (NumerTel, Nazwisko) VALUES ('608-403-234', 'DJasio')
No i niestety nic... Nie ma nawet zadnego bledu.
Myslalem o innym uzytkowniku, bo przy logowaniu nic takiego nie podaje,
wiec nie wiem czy jestem zalogowany w bazie jako jakis anonimowy. Ale
skoro uzytkownik nie ma praw wstawiania, to dlaczego udalo mi sie
stworzyc nowa tabele?
To samo polecenie SQL wywolane z kwerendy wstawiajacej dziala poprawnie.
Wiec o co chodzi ?
Pozdrawiam
Koniu
komp msg:
javax.servlet.ServletException: [Microsoft][ODBC Microsoft Access Driver]
Missing ), ], or Item in query expression 'ID IN (SELECT ID FROM ZAMOWIENIA
WHERE ID=100'
Mam pytanie: czy istnieje taki sterownik JDBC do Access'a, który może
pozwolić na dostęp do bazy danych bez konieczności jej rejestracji w Data
Sources komputera.
http://groups.google.pl/groups?selm=wZAJa.2567279%24YZ.391079%40news....
Zamiast "Microsoft Access Driver" musisz ewtl. podac
polska/zlokalizowana nazwe sterownika.
Ciao, Smyk
Przeczytaj wszystkie posty z tego wątkuConnection connection = DriverManager.getConnection("jdbc:interbase:Driver=
{Microsoft Access Driver
(*.mdb)};DBQ=adres/baza.mbd;DriverID=21;READONLY=true}", "urzytkownik", "haslo"
);
tylko to nie dziala.
Z gory dziekuje za pomoc.
Connection connection = DriverManager.getConnection("jdbc:interbase:Driver=
{Microsoft Access Driver
(*.mdb)};DBQ=adres/baza.mbd;DriverID=21;READONLY=true}", "urzytkownik", "haslo"
);
nie wiek jak to dokladnie dziala, "laczysz" sie do pliku? jezeli tak, to to
jest kwestia podania odpowiedniej sciezki lub umieszczenia pliku bazy
danych w odpowiednim miejscu
Pozdrawiam
Brzezi
Odrazu na samym poczatku chcialbym podkreslic, ze jestem poczatkujacy w javie
i dlatego moj problem moze dla was wydawac sie banalny ale dlamnie niestety
nie.
Chce sie polaczyc z baza danych Access i umiem tylko to zrobic z aplikacji
na lokalnym komputerze. Natomiast jak mam to zrobic jezeli z baza ma sie
laczyc serwlet? Prubowalem tak:
Connection connection = DriverManager.getConnection("jdbc:interbase:Driver=
{Microsoft Access Driver
(*.mdb)};DBQ=adres/baza.mbd;DriverID=21;READONLY=true}", "urzytkownik", "haslo"
);
tylko to nie dziala.
ODBC z Acessem dziala lokalnie.
Na maszynie, z ktorej sie laczysz musisz miec zainsalowane ODBC,
tu skonfigurowac DSN do pliku mbd udostepniony na zdalnym komputerze (read-write).
W Windows to jest proste jesli komp jest w tej samej sieci,
przez internet juz gorzej. Do linuxa/unixa powinny byc jakies drivery ODBC.
Ale zazwyczaj to rozwiazania platne (np.
http://www.easysoft.com/products/2003/comparison.phtml)
Wlasnie cos znalazlem, z pewnoscia to zadziala - mostek do ODBC
realizowany na podstawie RMI:
http://rmijdbc.objectweb.org/Access/access.html
czyli:
Aplikacja -- RMI -- internet -- RMI -- serwek z RMIJDBC -- ODBC
Pozdrawiam,
Piotr Gaertig
Odrazu na samym poczatku chcialbym podkreslic, ze jestem poczatkujacy w javie
i dlatego moj problem moze dla was wydawac sie banalny ale dlamnie niestety
nie.
Chce sie polaczyc z baza danych Access i umiem tylko to zrobic z aplikacji
na lokalnym komputerze. Natomiast jak mam to zrobic jezeli z baza ma sie
laczyc serwlet? Prubowalem tak:
Connection connection = DriverManager.getConnection("jdbc:interbase:Driver=
{Microsoft Access Driver
(*.mdb)};DBQ=adres/baza.mbd;DriverID=21;READONLY=true}", "urzytkownik", "haslo"
);
tylko to nie dziala.
Z gory dziekuje za pomoc.
Nie działa, bo "użytkownik" pisze się przez "ż".
TM
Istnieje zapytanie SQL w Microsoft Access 2003.
SELECT Opis_pliku.nr_linii, Sum(Wyniki_oceny.J) AS suma
FROM (Opis_pliku INNER JOIN Opis_pomiaru ON Opis_pliku.kod_pliku =
Opis_pomiaru.kod_pliku) INNER JOIN Wyniki_oceny ON
Opis_pomiaru.kod_pomiaru = Wyniki_oceny.kod_pomiaru
GROUP BY Opis_pliku.nr_linii;
Wykonuje się poprawnie, dalej
Źródło danych ODBC : Baza
Sterownik:
Microsoft Access Driver (*.mdb) 4.00.6304.00
Po przeniesieniu zapytania do JDBC w kodzie aplikacji Java mam
static final String JDBC_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
static final String DATABASE_URL = "jdbc:odbc:Baza";
static final String DEFAULT_QUERY = "SELECT Opis_pliku.nr_linii,
Sum(Wyniki_oceny.J) " +
" AS suma FROM (Opis_pliku INNER JOIN Opis_pomiaru ON " +
" Opis_pliku.kod_pliku = Opis_pomiaru.kod_pliku) INNER JOIN " +
" Wyniki_oceny ON Opis_pomiaru.kod_pomiaru = Wyniki_oceny.kod_pomiaru
" +
" GROUP BY Opis_pliku.nr_linii; "
Generowany jest błąd:
Microsoft Sterownik ODBC Microsoft Access
Próba wykonania kwerendy, która nie zawiera podanego wyrażenia
"NR_LINII" jako elementu funkcji agregującej
Czy ktoś mógłby nakierować, co jest przyczyną i jak zaradzić?
Czy potrzebuje innego sterownika aby wykonać to zapytanie, czy może
należy modyfikować zapytanie.
Bardzo dziękuje za poświęcony czas.
Mariusz.
K507 wrote:
Czy aplikacja bedzie korzystała bazpośrednio z odbc czy przez mostek
odbc jdbc ?
Zakladamy (dopoki nie zaprzeczy), ze jestesmy w Win.
czy mozna jakos ominać konfigurowanie ODBC ...
To akurat sie da:
...
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String mySourceUrl = "jdbc:odbc:MS Access 97 Database;DBQ=" +
myAccessDbPathAndName;
Connection con = DriverManager.getConnection(mySourceUrl, "", "");
...
Od biedy mozna tez uzyc 'odbcconf':
odbcconf /a {configdsn "Microsoft Access-Driver (*.mdb)"
"dsn=db|dbq=c:db.mdb"}
Ciao, Rafal
#!/perl
use warnings;
use strict;
use DBI;
my $DSN = 'driver=Microsoft Access Driver (*.mdb);dbq=C: est.mdb';
my $dbh = DBI-connect("dbi:ODBC:$DSN", '','') or die "$DBI::errstr
";
my $sth= $dbh-prepare('insert into art values ("aaaaa")');
$sth-execute;
no i wywala mi:
DBD::ODBC::st execute failed: [Microsoft][Sterownik ODBC Microsoft
Access ] Za mało parametrów. Oczekiwano 1. (SQL-07002)(DBD:
st_execute/SQLExecute err=-1) at C:accs.pl line 8.
select działa wporządku.
używam XPpro, AP v5.8.7, DBD-ODBC v. 1.11
ktoś wie co jest przyczyną tego ?
Dopiero zaczynam stawiać pierwsze kroki w Perlu i pytanie może się okazać
lamerskie.
Czy ktoś może mi powiedzieć jak wygląda sprawa podłaczenia się do bazy
danych accessa
w perlu.?
Dotychczas zajmowałem się ASP a chciałem zacząć wykorzystwać Active Perl
Moje podłaczenie do bazy accessa w ASP wygląda tak ( na bazie VBScript'u )
Set Conn1 = Server.CreateObject("ADODB.Connection")
Conn1.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
"DBQ=baza.mdb;" & _
"DefaultDir=c:inetpubmdb;" & _
"Uid=Admin;Pwd=;"
sql="SELECT * ...."
set eSQL = Conn1.Execute(sql)
Niestety nie mogę znaleśc przyładu który był by odpowiednikem w Perlu
podłaczenia się do bazy Access'a
w tej formie wyżej przedstawionej.
Za okazną pomoc z góry dziękuję
Pozdrawiam
Marcin Wróbel
m.wro@pro.onet.pl
| Czy ktoś może mi powiedzieć jak wygląda sprawa podłaczenia się do bazy
| danych accessa
| w perlu.?
| Dotychczas zajmowałem się ASP a chciałem zacząć wykorzystwać Active Perl
| Moje podłaczenie do bazy accessa w ASP wygląda tak ( na bazie
VBScript'u )
| Set Conn1 = Server.CreateObject("ADODB.Connection")
| Conn1.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
| "DBQ=baza.mdb;" & _
| "DefaultDir=c:inetpubmdb;" & _
| "Uid=Admin;Pwd=;"
| sql="SELECT * ...."
| set eSQL = Conn1.Execute(sql)
| Niestety nie mogę znaleśc przyładu który był by odpowiednikem w Perlu
| podłaczenia się do bazy Access'a
| w tej formie wyżej przedstawionej.
Jezeli masz zamiar korzystac z ADO, to zawsze mozesz uzyc Win32::OLE i
stworzyc sobie obiekt ADODB. Dzialac dziala, jakkolwiek ja i tak opieralem
sie zwykle na Win32::ODBC.
Error: [-3100] [3] [0] "[Microsoft][ODBC Microsoft Access Driver] Syntax
error in string in query expression '' Ä Ó'."
Niestety wygląda na to że problemem jest apostrof... Jak to obejść?
Pozdrawiam!
Wojtek Ścisłowski
mciek <ROT13kkk-arj.h@jc.hfha.cywrote:
Mam  wielką  prośbę,  do  tej  pory używałem perla do odczytywania i obróbki
plików  tekstowych, ale obecnie muszę wyciągnąć dane z plików Accessa (.mdb)
w FAQ pkt 9.5 znalazłem niewiele, ale przynajmniej wiem, że jest to możliwe,
czy  ktoś  byłby  tak uprzejmy i podał chociaż kawałek kodu jako się do tego
zabrać? może wskazówki jak to wykorzystać, poszukiwania jakiegoś przykładu w
google niewiele na razie dało...
Dziękuję za wszelkie wskazówki
PS. Używam ActivePerla 5.8 pod Windows
Oj, leniwy jesteś, leniwy...
Ale mam dziś dobry dzień:
#!perl -w
use strict;
use warnings;
use DBI;
my $baza = 'd: est est.mdb';
my $driver = 'Microsoft Access Driver (*.mdb)';
my #dsn = "driver=$driver;dbq=$baza";
my $dbh = DBI-connect("dbi:ODBC:$dsn",",") or die $DBI::errstr;
my $sql = 'select * from tabela';
my $sth = $dbh-prepare($sql) or die $dbh-errstr;
$sth-execute or die $dbh-errstr;
my @names = sort $sth-{NAME};
print "$_ " foreach @names;
print $/,$/;
while(my $row = $sth-fethrow_hashref){
foreach(@names) {
print $row-{$_}," ";
}
print $/;
} die $dbh-errstr if or die $dbh-err;
$dbh-disconnect;
__END__
Resztę znajdziesz w manualu do DBI i DBD::ODBC...
Pozdrawiam
Przeczytaj wszystkie posty z tego wątku
Vava wrote:
Uzywam ActiveState Perl 5.6 na Win NT 4.0 SP4
i biblioteki WIN32::ODBC (wersja dla build 311).
Probowalem sie podlaczyc do Accesowej bazy danych.
Stworzylem DSN w ODBC.
Utworzenie obiektu $db = new WIN32::ODBC("nazwa_DSN");
Nie zwraca bledu, lecz kiedy probuje wylas zapytanie:
$sqlQuerry="select * from MAIN";
if ($db-Sql($sqlQuerry)) {
$db-DumpError;
}
To dostaje:
---------- Error Report: ----------
Errors for "2" on connection 1:
Connection Number: 1
Error number: -1305
Error message: "[Microsoft][ODBC Microsoft Access Driver] The Microsoft
Jet database engine could not find the object 'XXXX'.
Make sure the object exists and that you spell its name and
the path name correctly."
-----------------------------------
Gdzie XXXX to nazwa ostatniej kolumny w tabeli MAIN.
Mala sugestia na boku - sprobuj DBI i DBD::ODBC dziala to i szybciej i
przenosnie na inne bazy|systemy.
Jak uzywac DBI jest przyklad w FAQu.
Natomiast blad, ktory otrzymujesz ma pewnie cos wspolnego z konfiguracja
ODBC, Accessa, w kazdym razie nie z perlem jako takim i na tej grupie
pewnie sie wiele nie dowiesz.
Sprobuj na pl.comp.bazy-danych.msaccess.
Pozdrawiam
KK
Pozdrawiam
KK
use DBI;
$dsn="dbi:ODBC:Microsoft Access Driver;dbq=baza.mdb";
$user="";
$password="";
$dbh=DBI-connect($dsn,'','') or die "$DBI::errstr
";
Blad:
DBI-connect(Microsoft Access Driver;dbq=baza.mdb) failed: [Microsoft][ODBC Driv
er Manager] Invalid string or buffer length (SQL-S1090)(DBD: db_login/SQLConnect
err=-1) at convert.pl line 7
[Microsoft][ODBC Driver Manager] Invalid string or buffer length (SQL-S1090)(DBD
: db_login/SQLConnect err=-1)
O co chodzi????
<kopernik@poczta.onet.plwrote:
Program:
use DBI;
$dsn="dbi:ODBC:Microsoft Access Driver;dbq=baza.mdb";
sprobuj:
$dsn="dbi:ODBC:driver=Microsoft Access Driver (*.mdb);dbq=baza.mdb";
Pozdrawiam
Przeczytaj wszystkie posty z tego wątku$dsn="dbi:ODBC:nazwa_zrodla";
...
Pozdrawiam
<kopernik@poczta.onet.plwrote:
| Program:
| use DBI;
| $dsn="dbi:ODBC:Microsoft Access Driver;dbq=baza.mdb";
sprobuj:
$dsn="dbi:ODBC:driver=Microsoft Access Driver (*.mdb);dbq=baza.mdb";
Hubert Dołęga <hub@rava.com.plwrote:
| Podgladalem rejestr i sporo tam informacji zaleznych od konkretnej
| konfiguracji komputera - dosc malo wygodne do oskryptowania. Moze
| jest jakas funkcja w winzgrozowym API?
Zobacz może w MS KB artykuł Q171146 - "HOWTO: Create and Remove a DSN
in Visual Basic".
http://support.microsoft.com/support/kb/articles/q171/1/46.asp
THX!
CHoc juz poradzilem sobie inaczej... Wywoluje baze:
my $dsn = 'driver=Microsoft Access Driver (*.mdb);dbq=D:\sciezka\baza.mdb';
my $dbh = DBI-connect("dbi:ODBC:$DSN") or die "BLAD POLACZENIA: $DBI::errstr";
A sciezke do bazy zapisuje w rejestrze...
Pozdrawiam
Przeczytaj wszystkie posty z tego wątku
mam pytanie pisze program w asp ktory ma sie laczyc z baza danych accesa
ale
za cholere sie nie chce sie znia polaczyc, wpisuje wszystko idealnie tak
jak
jest w knigach i nic caly czas mi wyskakuje taki blad
"
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Sterownik ODBC Microsoft Access ]Błąd ogólny Nie można
otworzyć
klucza rejestru 'Temporary (volatile) Jet DSN for process 0xab8 Thread
0xc34
DBC 0x224d014 Jet'"
a oto fragment mojego programu
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
"DBQ=C:Documents and SettingsjaPulpitasp_testslownik.mbd"
Conn.Open
moze mi ktos pomoc???
z gory dzieki
nara
empirium.
Stary - ale żeś trafił.......
NTGie....hehehehe
Pozdr.
Gupik
Lemat wrote:
http://www.php.net/manual/pl/function.odbc-connect.php
Cos ciezko z tym polaczeniem u mnie :) Dostaje blad
Warning: odbc_exec(): supplied argument is not a valid ODBC-Link
resource in wwwrootphotos est.php on line 7
Warning: odbc_fetch_row(): supplied argument is not a valid ODBC result
resource in wwwrootphotos est.php on line 8
przy kodzie:
<?
$cfg_dsn = "DRIVER=Microsoft Access Driver (*.mdb);
DBQ=../db/nichole1.mdb;";
$dbh1 = odbc_connect($cfg_dsn, "", "") or die ("NIE UDALO SIE POLACZYC");
$sql = "select * from Photos";
$result = odbc_exec($sql, $dbh1);
while(odbc_fetch_row($result))
{
}
odbc_close($dbh1);
?
Nie ma takiej funkcji czy jak?
Michal
while(odbc_fetch_row($result))
{
}
odbc_close($dbh1);
?
Witam!
Spróbuj może nie używać tych zmiennych. Szczerze mówiąc nie korzystałem
nigdy z ODBC, ale miałem identyczny problem z mysql_connect() i to
rozwiązanie pomogło.
BTW. Zna ktoś może odpowiedź na to pytanie - czemu tak się dzieje, że
php nie zawsze uznaje zmienną za poprawny link, a nieodwoływanie się do
żadnej zmiennej działa normalnie?
W bazie, w tabeli Employees jest rekord:
Name = Franek (string)
Surname = Kimono (string)
Position = GL (string)
Team = ,Team_1, (string)
ID = 6 (autonumber, long int)
Wykonanie UPDATE w postaci:
"UPDATE Employees SET (Name = 'Franciszek', Surname = 'Kimono', Position =
'TM', Team = ',Team_1,Team_2,') WHERE ID=6"
powoduje błąd:
ADO Native Number: -3503
ADO Source: [Microsoft][ODBC Microsoft Access Driver]
ADO Error Description: Syntax error in UPDATE statement.
ADO Source: Microsoft OLE DB Provider for ODBC Drivers
Ja nie widzę tego błędu w składni, o który rzuca się sterownik.
Może Wy go widzicie? BTW: dodanie ";" na końcu SQL'a nie zmienia nic
(pamiętam, że w DAO czasami pomagało.)
Witam,
[ciach]
Wykonanie UPDATE w postaci:
"UPDATE Employees SET (Name = 'Franciszek', Surname = 'Kimono', Position =
'TM', Team = ',Team_1,Team_2,') WHERE ID=6"
powoduje błąd:
ADO Native Number: -3503
ADO Source: [Microsoft][ODBC Microsoft Access Driver]
ADO Error Description: Syntax error in UPDATE statement.
ADO Source: Microsoft OLE DB Provider for ODBC Drivers
Ja pamiętam podobne kłopoty w sytuacji gdy update był kwerendą aktualizującą
(o tym nie piszesz jak wywołujesz UPDATE), a nie tekstem w Basicu. Okazało
się, że problem występuje dla Accessa 97, nie ma go dla Accessa 2000.
Może to Ci coś pomoże
Connection string:
baza.ConnectionString="Driver={Microsoft Access Driver
(*.mdb)};Dbq=baza.mdb;Uid=Admin; Pwd="
Wrzucanie danych:
query = "INSERT INTO kategorie VALUES ('.....');"
baza.RecordSource = query
baza.Refresh
Nie bardzo to hula, bo generuje błędy (dokładnie metoda Refresh),
niestety, jak usuwam Refresh, dane nie są wrzucane do bazy,
gdy refresh jest - wszystko trafia do bazy ale generuje błędy, więc je
ignoruję (obsł. błędów)
spoko, do zaakceptowania, hula... ale...
(...)
Jakie błędy są generowane? Czy tabele są zdefiniowane w taki sam sposób
(odpowiadające sobie kolumny mają taki sam typ danych)? Spróbuj wykonać
polecenie Insert into kategorie bezpośrednio w Accessie: może masz błąd
składni. Skorzystaj z obiektu command i execute.
"Piotr Szwajkowski" <p@poczta.onet.plwrote:
Zrobi³em to tak:
Connection string:
baza.ConnectionString="Driver={Microsoft Access Driver
(*.mdb)};Dbq=baza.mdb;Uid=Admin; Pwd="
Wrzucanie danych:
query = "INSERT INTO kategorie VALUES ('.....');"
baza.RecordSource = query
baza.Refresh
Nie bardzo to hula, bo generuje b³êdy (dok³adnie metoda Refresh),
connection.Execute CommandText, RecordsAffected, Options
© 2009 Najlepszy miesiąc kawalerski w Polsce !!! - Ceske - Sjezdovky .cz. Design downloaded from free website templates