Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Jest service pack czy go nie ma ?

6 views
Skip to first unread message

Raphael Posmyk

unread,
Oct 7, 2002, 5:30:16 AM10/7/02
to
Hi Accessiarze,

Jestesmy w srodowisku runtime. Jak z poziomu VB
odczytac, czy zostal(y) wgrane jakiekolwiek
service pack'i ? Czy wogole da sie wyczytac ?
(Dotyczy glownie a2k, mniej a9x)
Ciao, Rafal

P.S: Za cholere nie moge sie dogadac z helpem.
Ja swoje, a on swoje :-|

Krzysztof Naworyta

unread,
Oct 7, 2002, 5:40:49 AM10/7/02
to
Uzytkownik "Raphael Posmyk" <raphael...@komm-kontroll.de> napisal

> Jestesmy w srodowisku runtime. Jak z poziomu VB
> odczytac, czy zostal(y) wgrane jakiekolwiek
> service pack'i ? Czy wogole da sie wyczytac ?
> (Dotyczy glownie a2k, mniej a9x)

taaaa, tam sie juz nie zaglada ?
http://www.mvps.org/access/api/api0065.htm


> P.S: Za cholere nie moge sie dogadac z helpem.
> Ja swoje, a on swoje :-|

hmmm, to trzeba polubic ;-)
ja osobiscie pytam juz tylko z poziomu edytora kodu: slówko + F1
a jak wiem co szukam (!?), to oczywiscie w drzewku helpa - ale to nie metoda
...

--
KN

grzegorz...@big.pl

unread,
Oct 7, 2002, 5:54:07 AM10/7/02
to
> -----Oryginalna wiadomość-----
> Od: Raphael Posmyk [mailto:raphael...@komm-kontroll.de]
> Wysłano: 2002-10-07 11:30
> Do: pl-comp-bazy-d...@newsgate.pl
> Temat: Jest service pack czy go nie ma ?
>
>
> Hi Accessiarze,

>
> Jestesmy w srodowisku runtime. Jak z poziomu VB
> odczytac, czy zostal(y) wgrane jakiekolwiek
> service pack'i ? Czy wogole da sie wyczytac ?
> (Dotyczy glownie a2k, mniej a9x)
> Ciao, Rafal
>

Może wystarczy Ci sprawdzić wersję providera?

?CurrentProject.Connection.Properties("Provider Version")

Wydaję mi się, że ten numer zmienia się wraz z zainstalowaniem SP do Jeta.

Pozdrawiam
Grzegorz

--
Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych.msaccess

Raphael Posmyk

unread,
Oct 7, 2002, 6:58:46 AM10/7/02
to
Krzysztof Naworyta schrieb:

> taaaa, tam sie juz nie zaglada ?

Mea maxima culpa :-|. O tym nie pomyslalem.

> http://www.mvps.org/access/api/api0065.htm

Spodziewalem sie, ze bedzie jakies swinstwo.
Bawi mnie inna rzecz:

?fGetProductVersion(SysCmd(acSysCmdAccessDir) & "msaccess.exe")
9.0.0.4506

Natomiast Menu->Info (msinfo32.exe tez):

9.0.4402 SR1

O to jedno zero sie nie kluce, ale ... Co prawda
obie wartosci swiadzylyby o zainstalowanym SR1
(> 9.0.0.3822), ale komu wierzyc ?

Dzieki za podpowiedzi, Rafal

Krzysztof Naworyta

unread,
Oct 7, 2002, 7:29:32 AM10/7/02
to
Użytkownik <grzegorz...@big.pl>

> > Jestesmy w srodowisku runtime. Jak z poziomu VB
> > odczytac, czy zostal(y) wgrane jakiekolwiek
> > service pack'i ? Czy wogole da sie wyczytac ?
> > (Dotyczy glownie a2k, mniej a9x)

> Może wystarczy Ci sprawdzić wersję providera?


>
> ?CurrentProject.Connection.Properties("Provider Version")
>
> Wydaję mi się, że ten numer zmienia się wraz z zainstalowaniem SP do Jeta.
>

Rzeczywiście ... Dobrze wiedzieć o tej właściwości :-)
Od razu napisałem sobie funkcyjkę:

Function GetProviderVersion()
Dim sp(0 To 7) As Long
Dim cv As Long, pv As Integer, i As Integer
'---------------------------------------------------------------------
' msjetoledb40.dll "
'---------------------------------------------------------------------
sp(0) = 0
sp(1) = 2927 ' nie było
sp(2) = 2927 ' nie było
sp(3) = Split("4.00.2927.2", ".")(2) ' - Jet 4.0 SP3 (October 11, 1999)
sp(4) = Split("4.00.3714.0", ".")(2) ' - Jet 4.0 SP4 (April 26, 2000)
sp(5) = Split("4.00.4331.4", ".")(2) ' - Jet 4.0 SP5 (October 26, 2000)
sp(6) = Split("4.00.5919.0", ".")(2) ' - Jet 4.0 SP6 (April 15, 2002)
sp(7) = 5920 'na przyszłość ;-)

cv = Split(CurrentProject.Connection.Properties("Provider Version"),
".")(2)
For i = 0 To 7
pv = pv - (cv >= sp(i))
Next
GetProviderVersion = "SP " & (pv - 1)

End Function

To co podaje Ashish tez ma swój sens, ale dla nas accessowców jakby mniejszy
...
Office SR1 i SR1a głównie poprawiają pozostałe produkty a w zakresie
access'a chyba jedynie dublują Jet4.0SP# (???)

--
KN

Krzysztof Naworyta

unread,
Oct 7, 2002, 7:18:04 AM10/7/02
to
Uzytkownik "Raphael Posmyk" <raphael...@komm-kontroll.de> napisal

> Bawi mnie inna rzecz:


>
> ?fGetProductVersion(SysCmd(acSysCmdAccessDir) & "msaccess.exe")
> 9.0.0.4506
>
> Natomiast Menu->Info (msinfo32.exe tez):
>
> 9.0.4402 SR1
>
> O to jedno zero sie nie kluce, ale ... Co prawda
> obie wartosci swiadzylyby o zainstalowanym SR1
> (> 9.0.0.3822), ale komu wierzyc ?

W tym rzecz ze MS poprzez msinfo32.exe nie pokazuje wlasciwej wersji.
Stad niemoznosc rozróznienia miedzy SR1 a SR1a czy nawet SR2
Porównaj z:
http://support.microsoft.com/default.aspx?scid=KB;EN-US;q278269

(...)
Office Program Version in "About" Dialog Box
-------------------------------------------------------
Microsoft Access (9.0.4402 SR-1)

File Version
--------------------------------------------------------
msaccess.exe 9.0.0.4506


--
KN

P.S.
Wersja providera (odpowiedz Grzeska) wydaje sie bardziej szczególowa

Raphael Posmyk

unread,
Oct 7, 2002, 9:05:29 AM10/7/02
to
Krzysztof Naworyta schrieb:

> Rzeczywiście ... Dobrze wiedzieć o tej właściwości :-)
> Od razu napisałem sobie funkcyjkę:

Jak jeszcze powiesz, ze zabudowales ja w Swoje
aplikacje w menu -> ? -> Info, to cie posadze
o plagiat ;-)

> Office SR1 i SR1a głównie poprawiają pozostałe produkty a w zakresie
> access'a chyba jedynie dublują Jet4.0SP# (???)

Wiem, ze db-System MS-Jet jest dostepny poza pakietem office.
Mozna go uzywac jako RDBMS takze z poziomu innych jezykow prog.
Chociaz pod windowsem wszystko instaluje sie na opak. Wystarczy
zainstalowac IE i juz mamy bez pytania Outlook, MS JVM i cala
rzesze innych smieci. Ale to juz OT.

Ciao, Rafal

P.S: Wlasnie szukam po i-net'ie opisu wlasciwosci
polaczen. Niektore sa dosc zagadkowe. Patrz:

dim prop as Property
For Each prop In CurrentProject.Connection.Properties
Debug.Print prop.Name & " -> " & prop.Value
Next

Krzysztof Naworyta

unread,
Oct 7, 2002, 10:19:09 AM10/7/02
to
Użytkownik "Raphael Posmyk" <raphael...@komm-kontroll.de> napisał

> > Od razu napisałem sobie funkcyjkę:
>
> Jak jeszcze powiesz, ze zabudowales ja w Swoje
> aplikacje w menu -> ? -> Info, to cie posadze
> o plagiat ;-)

nie mówi się "to cie posadze o plagiat" tylko
"to cie posadze ZA plagiat"
:-))))

> P.S: Wlasnie szukam po i-net'ie opisu wlasciwosci
> polaczen. Niektore sa dosc zagadkowe. Patrz:
>
> dim prop as Property
> For Each prop In CurrentProject.Connection.Properties
> Debug.Print prop.Name & " -> " & prop.Value
> Next

poszło Ci z
Dim prop As Property ?
bo ja musiałem dać Object ...

ale mniejsza, rzeczywiście niezła lista ...

Jeszcze ciekawsza by była, gdyby można dowiedzieć się, które z nich RO a
które RW.
Zwykły przechwyt błędu przy
prop.Value = prop.Value
coś niby daje, ale niestety bardzo mało wiarygodne:

rw > Identifier Case Sensitivity -> 8

ale też:
rw DBMS Version -> 04.00.0000
rw Maximum Index Size -> 255
rw Maximum Row Size -> 4049

;-)))

Część z nich opisana jest oczywiście przy okazji DbEngine.SetOption

--
KN

Krzysztof Naworyta

unread,
Oct 7, 2002, 10:44:30 AM10/7/02
to
Użytkownik "Krzysztof Naworyta" <k.naw...@datacomp.com.pl> napisał

> poszło Ci z
> Dim prop As Property ?
> bo ja musiałem dać Object ...
>

o, ja cipa głupia ...
no przecież nie używam ADO ...

;-))))

KN

Krzysztof Naworyta

unread,
Oct 9, 2002, 3:30:24 PM10/9/02
to
Uzytkownik "Krzysztof Naworyta" <k.naw...@datacomp.com.pl> napisal w
wiadomosci news:anrrfu$avd$1...@news.onet.pl...

> >
> > ?fGetProductVersion(SysCmd(acSysCmdAccessDir) & "msaccess.exe")
> > 9.0.0.4506

Nie mogę się oprzeć ...

Krzysiek Pozorek na swojej stronie umieścił cala serie nieudokumentowanych
SysCmd(), które udało mu się rozszyfrować:
http://www.access.vis.pl/af0424a.htm

m.in. (choć jeszcze nie umieścił):

? SysCmd(715)
4506

Gdyby nie ten watek, w życiu bym nie zrozumiał, co ta funkcja zwraca ...

***
Był sobie kiedyś watek o pisaniu w Access'ie (2000) wieloma językami
i było pytanie jak programowo w Access'ie przełączać klawiaturę:
polska> grecka > rosyjska > turecka itd.

O ile do samodzielnego przełączania klawiatury możemy ustawić globalny
windowsowy gorący klawisz - co pozwala różnymi czcionkami (językami) pisać
nawet w tym samym polu - to jak to zrobić programowo ?

Np. mamy tabele z polami [polski], [grecki], [rosyjski]
I znów, dzięki Krzyskowi, wszystko jasne:

Private Sub grecki_Enter()
SysCmd 710, 67634184 'GR
End Sub

Private Sub grecki_Exit(Cancel As Integer)
SysCmd 710, 68486165 'PL
End Sub

Private Sub rosyjski_Enter()
SysCmd 710, 68748313 'RU
End Sub

Private Sub rosyjski_Exit(Cancel As Integer)
SysCmd 710, 68486165 'PL
End Sub

Oczywiście to tylko szkic - klawiatury musza być w systemie zainstalowane,
bo inaczej SysCmd zwróci niepowodzenie = 0

***
i jeszcze jedna:
SysCmd(609)
Zwraca PID procesu (to samo co zwraca Shell())

Tylko do czego to wykorzystać ? Większość API jakie znam potrzebują uchwytu
okna i to właśnie głównie o to chodzi:
jak z PID zwróconego przez Shell uzyskać uchwyt hwnd
(gdzieś - chyba u Asisha jest algorytm)

Mnie się nasunęło jedno wykorzystanie, odnośnie niedawnego wątku z
automatyzacja:
"Schowek Ctrl+C Ctrl+V"

(...)
x = Shell(app & " " & _
Chr(34) & dbs & Chr(34) & _
" /nostartup" & _
" /user " & usr & _
" /pwd " & pas & _
" /wrkgrp " & Chr(34) & wrk & Chr(34), _
vbMinimizedFocus)

Set accObj = GetObject(dbs)

' no właśnie - czy accObj jest ta aplikacja wywołana Shell'em, czy kolejna
lub poprzednia instancja ?

If accObj.SysCmd(609)<>x Then
' to inna instancja !

Może ktoś zaproponuje inne użycie ?

--
KN

Raphael Posmyk

unread,
Oct 10, 2002, 5:01:23 AM10/10/02
to
Krzysztof Naworyta schrieb:

> SysCmd(609)
> Zwraca PID procesu (to samo co zwraca Shell())
>
> Tylko do czego to wykorzystać ?

Ciekawy rodzaj podejscia do problemu :-)


> Większość API jakie znam potrzebują uchwytu
> okna i to właśnie głównie o to chodzi:
> jak z PID zwróconego przez Shell uzyskać uchwyt hwnd
> (gdzieś - chyba u Asisha jest algorytm)

Ze starych czasow pamietam, ze windows _wie_ jakie
okna naleza do jakiego procesu.

> (...)
> x = Shell(app & " " & _
> Chr(34) & dbs & Chr(34) & _
> " /nostartup" & _
> " /user " & usr & _
> " /pwd " & pas & _
> " /wrkgrp " & Chr(34) & wrk & Chr(34), _
> vbMinimizedFocus)
>
> Set accObj = GetObject(dbs)
>
> ' no właśnie - czy accObj jest ta aplikacja wywołana Shell'em, czy kolejna
> lub poprzednia instancja ?

Przy uzyciu:

Set accObj = GetObject(dbs, "Access.Application")

powinienes trafic ta wlasnie wywolana instancje.
Ale co sie stanie jak wywolasz Shell(jak wyzej)
kilkakrotnie ?

Ciao, Rafal

Krzysztof Naworyta

unread,
Oct 10, 2002, 5:37:36 AM10/10/02
to
Użytkownik "Raphael Posmyk" <raphael...@komm-kontroll.de> napisał

> > SysCmd(609)


> > Zwraca PID procesu (to samo co zwraca Shell())
> >
> > Tylko do czego to wykorzystać ?
>
> Ciekawy rodzaj podejscia do problemu :-)

Wyczuwam lekką kpinę ...
;-)
Skoro do tej pory nigdzie tego PID'a nie potrzebowałem, to pewnie do niczego
mi się nie przyda ...
Ale może być i tak, że do tej pory pewne uwidziane algorytmy momentalnie w
głowie kasowałem, bo potrzebowały jakiegoś PID'a ...

> > Większość API jakie znam potrzebują uchwytu
> > okna i to właśnie głównie o to chodzi:
> > jak z PID zwróconego przez Shell uzyskać uchwyt hwnd
> > (gdzieś - chyba u Asisha jest algorytm)
>
> Ze starych czasow pamietam, ze windows _wie_ jakie
> okna naleza do jakiego procesu.
>

Windows raczej na pewno wie - gorzej z programistą ;-)

> > (...)
> > x = Shell(app & " " & ...)
> > (...)


> > Set accObj = GetObject(dbs)
> >
> > ' no właśnie - czy accObj jest ta aplikacja wywołana Shell'em, czy
kolejna
> > lub poprzednia instancja ?
>
> Przy uzyciu:
>
> Set accObj = GetObject(dbs, "Access.Application")
>
> powinienes trafic ta wlasnie wywolana instancje.
> Ale co sie stanie jak wywolasz Shell(jak wyzej)
> kilkakrotnie ?

Właśnie.
1.
Aplikacja mogła już być odpalona, np. z niewłaściwą grupą roboczą albo z
logowaniem innego użytkownika.
2.
GetObject może zajść za szybko, jeszcze przed zadziałaniem asynchronicznego
Shell
U Ashisha zauważyłem ten sam algorytm, z przedzielającą linijką:
DoEvents: DoEvents: DoEvents: DoEvents

Ale masz rację - co ja tu będę wynajdywał zastosowania. Same się pojawią ...
albo i nie.

--
KN

0 new messages