[cpp] [mssql]

0

witam serdecznie.
mam taki maly problem podczas pisania programu operujacego na bazach sql serwera mssql2000.
do operacji uzywam darmowej biblioteki oracla OTL4.0
zeby dostac sie do danych trzeba zalogowac sie do serwera. robie to w programie. problem polega na tym ze istnieje mozliwosc, ze uzytkownik obslugujacy program nie bedzie wykonywal na nim zadnych operacji powiedzmy przez kilka godzin. nie wiem kiedy serwer wyloguje samoczynnie uzytkownika dlatego przed kazda operacja na bazie wylogowuje sie i loguje ponownie. nie udalo mi sie w ustawieniach serwera znalezc niczego co odpowiadaloby za czas, po jakim serwer wyloguje uzytkownika, ktory nie zglasza zadnych zapytan. nie wiem czy dobrze to wytlumaczylem. program oczywiscie dziala.

pozdrawiam
Mariusz

0

Nie bardzo rozumiem, to że jak wykonujesz operacje na bazie to się najpierw z nią łączysz/logujesz, robisz operacje na danych i wylogowywujesz- normalnie.
Jeżeli użytkownik nic nie robi przez długi czas na bazie to po co trzymać dla niego połączenie.

0

problem w tym ze za kazdym razem kiedy cos chce robic na bazie wylogowuje sie i loguje ponownie na wszelki wypadek, poniewaz nie wiem czy ta operacja nie jest pierwsza powiedzmy od kilku godzin jaka wykonal uzytkownik i serwer go dawno nie wylogowal. gdybym tego nie robil mogloby dojsc do sytuacji ze serwer odmowi dostepu.

pozdrawiam
Mariusz

0

To standardowe zachowanie programów korzystających z baz danych, robisz operacje na danych otwierasz połączenie...
Kończysz zamykasz połaczenie, powodów jest kilka przede wszystkim oszczędzanie pamieci, nie wiem z jakich obiektów korzystasz przy połączeniu z bazą MSSQL, jeżeli ADO lub ADO.NET to możesz przy zestawieniu połączenia ustawić timeout(), ale to chyba nie o to chodzi, postaram się poszukać i dać znać.
A tak na marginesie długo nic nie robi to znaczy ile?

Ok. teraz sprawdziłem, jeżeli piszesz na platformę windows to możesz użyć do połączenia providera do SQLServera dostarczonego z systemem, jak masz stary to możesz ściągną MDAC ze stron microsoftu

0

witam ponownie.
uzywam windowsa, Win32API + C++, serwera MSSQL i ODBC.
moze troche nie w temacie bo to forum dla MySqla ale pomyslelem ze chyba zasady sa podobne.

jesli chodzi o dlugosc "nic nie robienia" to wytlumacze to inaczej.
Powiedzmy ze pisze program do sprzedazy, ktory komunikuje sie z serwerem SQL. Pani ekspedientka sprzedala dwa chleby i pol litra zubrowki, poszla na obiad zasluzony z reszta i nie wylaczala oczywiscie komputera ani nie wylogowywala sie z programu. Po pysznym obiadku wraca ponownie do swojego stanowiska, gdzie minelo 50 minut. Program przez ten czas nic nie robil. Teraz problem. kiedy zacznie sprzedawac ponownie nie wiem czy juz jestem wylogowany z serwera czy nie, dlatego przy kazdym zapytanu wylogowuje sie i loguje ponownie.

pozdrawiam
Mariusz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0