Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

Błąd podczas dostępu do bazy



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Bazy danych
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Petrof



Dołączył: 03 Cze 2005
Posty: 112

PostWysłany: Nie Cze 12, 2005 9:16 pm  OP    Temat postu: Błąd podczas dostępu do bazy Odpowiedz z cytatem Pisownia

Witam

Mam zadeklarowane zmienne globalne:

Kod:
Global db As Database
Global data As Recordset
Global rs As Recordset



i w procedurze sub Main()
Kod:

Set db = OpenDatabase(App.Path & "\" & "dane.mdb", _ False,False, ";pwd=kon20")

Set data = db.OpenRecordset("klienci", dbOpenTable)




w procedurze wszystko działa ok.

ale gdy odwołam się do globalnej zmienniej z innej procedury(zmienne są inicjowane w startowj procedurze Main) to już wykakuje błąd:

że obiekt nie został ustawiony. To jest taki sam komunikat jak w sytuacji kiedy nie postawię Set przed zmienną obiektową.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
karolinavb
Site Admin


Dołączył: 25 Maj 2005
Posty: 7905

PostWysłany: Nie Cze 12, 2005 9:57 pm      Temat postu: Błąd podczas dostępu do bazy Odpowiedz z cytatem Pisownia

Petrof
Są takie możliwości:
- wcześniej zamykasz obiekt, lecz nie wiem który bo w Twojej informacji o błędzie nie piszesz którego z obiektów dotyczy komunikat ? A nie widzę inicjalizacji np rs ?

- w procedurze wywołującej "przykrywasz" zmienne globalne zmiennymi lokalnymi o tej samej nazwie i odwołanie dotyczy obiektu lokalnego?

w procedurze wszystko działa ok. - to znaczy ? jaki dowód ? bo nie wiem jaką masz obsługę błędów tam gdzie jest ok, bo jeśli
On Error Resume Next ???
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Artusx



Dołączył: 04 Cze 2005
Posty: 129
Skąd: KrakOw

PostWysłany: Pon Cze 13, 2005 4:42 am      Temat postu: Odpowiedz z cytatem Pisownia

W VB.NET powinno być:
Kod:
Public db As New Database
Public data As New Recordset
Public rs As New Recordset

a VB... ludzie nie piszcie już w VB :). To tak jak jeździć Fiatem 126p

_________________
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
djkprojects



Dołączył: 27 Maj 2005
Posty: 875
Skąd: UK

PostWysłany: Pon Cze 13, 2005 2:58 pm      Temat postu: Odpowiedz z cytatem Pisownia

tak tylko, że VB6.0 jest jak narazie szybszy niż VB.Net

Poza tym gdybym zaczął od VB.Net'a to pewnie do dzisiaj nie wiedziałbym co to są funkcje API :)

_________________
Auto giełda samochodowa z setkami darmowych ogłoszeń motoryzacyjnych. Dodaj swoje ogłoszenie.
Programowanie VB6 i VB.NET
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG Tlen
marcin_an



Dołączył: 26 Maj 2005
Posty: 18822

PostWysłany: Pon Cze 13, 2005 3:34 pm      Temat postu: Odpowiedz z cytatem Pisownia

-->Petrof
Sprawdź, czy po wykonaniu funkcji OpenDatabase w db masz jakikolwiek obiekt. Bo może poprostu nic do niego nie trafia? Wtedy w drugiej linii wystąpi taki błąd.

--Artusx
Cytat:
Public db As New Database...

W VB6 także istnieje słowo kluczowe New, ale w tym przypadku jego użycie nie ma jakiegokolwiek sensu...
Cytat:
Fiat126p

Nowsze nie zawsze znaczy lepsze...
Zresztą na co mi drugi język wysokopoziomowy podobny do tego, który już znam?

_________________
Nieaktywny od 2017-04-01
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Artusx



Dołączył: 04 Cze 2005
Posty: 129
Skąd: KrakOw

PostWysłany: Wto Cze 14, 2005 5:52 am      Temat postu: Odpowiedz z cytatem Pisownia

Cytat:
Nowsze nie zawsze znaczy lepsze...


Wiesz teoretycznie masz racje, z tym że nie wiem czy próbowaleś pracować w VB6 np ze 100 tys. rekordów. Oczywiście do małych, średnich rozwiązań VB jest zupełnie wystarczające i dość często szybsze, jednak .NET przy obsłudze dużej bazy bije VB6. Za dużą bazę uważam 1 mln rekordów i 100 użytkowników :). Po drugie jeżeli w szkołach teraz uczą VB.NET (mnie uczyli basic-a :) to też o czymś świadczy. Niestety czas się pożegnać z VB6 :(((. I lepiej jak najwcześniej tym bardziej że już jest VB.NET 2005. Dla mnie przejście z VB6 na VB.NET 2002 było ciężkim przeżyciem a co dopiero 2005. Tzw upgrade z VB6 do VB.NET to często fikcja, nadaje się do typowych i prostych aplikacji. Jeżeli program jest bardziej rozbudowany to łatwiej, lepiej i szybciej jest napisać go od nowa. I wcale się nie ździwię jeżeli w Longhorn-ie pojawi się "uruchom w trybie zgodności z VB6" :))

_________________
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
karolinavb
Site Admin


Dołączył: 25 Maj 2005
Posty: 7905

PostWysłany: Wto Cze 14, 2005 7:48 am      Temat postu: Błąd podczas dostępu do bazy Odpowiedz z cytatem Pisownia

Wtrącę się do Waszej dyskusji...

Niewątpliwie Artusx ma rację.
Moim zdaniem, poza wszystkim zawsze należy podążać za nowym, chociażby po to by poznać i ocenić z co i kiedy należy wybrać.
Myślę jednak, że wiekszość z nas niekoniecznie ma wolny wybór, często pracujemy na tym na co nas stać, lub tym co mamy do dyspozycji (np. nie stać nas na nowe), lub też pracujemy na tym co nam daje do dyspozycji pracodawca i do jego warunków musimy się dostosować... jak w życiu..
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
marcin_an



Dołączył: 26 Maj 2005
Posty: 18822

PostWysłany: Wto Cze 14, 2005 3:27 pm      Temat postu: Odpowiedz z cytatem Pisownia

Karolino, ja również sądze, że warto poznawać jak najwięcej. Ale niekoniecznie oznacza to poznawanie języka, który jest podobny do już mi znanego (VB6), jest również wysokopoziomowy i pisane w nim aplikacje działają na jeszcze mniejszej liczbie kompuerów niż pisane w jego poprzedniku. Powoli zaczynam odsuwać się od środowiska VB i dlatego uznaję, że wersja 6 mi całkowicie wystarcza.

Jesli chodzi o Longhorna, o którym wspomniał Artusx: z tego co wiem w Windows Longhorn każdy program "niedotnetowy" chodzi "w trybie zgodności", bo cały ten system jest oparty na platformie .NET - co zresztą budzi moje wątpliwości o jego wydajność. Nie będę jednak nic na ten temat mówił, bo trudno z góry oceniać system, który widziałem może raz w życiu i nawet na nim nie pracowałem.

_________________
Nieaktywny od 2017-04-01
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Bazy danych Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.15778 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |