mam klopot z wyciekami pamieci przy wysylaniu zapytac i.open (size, query, db );
prosilbym o pomoc osoby, ktore uzywaja tej biblioteki. wszystko chodzi pieknie z tym wyjatkiem, ze po kazdym zapytaniu lub odebraniu danych z servera (nie wiem dokladnie kiedy to sie dzieje) moj proces zajmuje wiecej o kilkadziesiat kilobajtow pamieci w systemie.
wiem, ze ponownego otwarcia strumienia dokonuje sie tylko, kiedy zostal zamkniety, w przeciwnym wypadku mozna w jakis sposob uzyc i.rewind() ale u mnie program sie wywala. dostalem porade jak ma wygladac mniej wiecej zapytanie, nie powodujace wyciekow. moje, z ktorym mam problemy mniej wiecej wyglada tak:

otl_connect db;                                                                         //global defined objects
otl_stream i;
char remarks[600];
 
otl_connect::otl_initialize();                                                          //initialisation
i.set_all_column_types(otl_all_num2str | otl_all_date2str );
 
db.rlogon("UID=%s;PWD=%s;DSN=%s", SqlUser, SqlPass, SqlServerName");      //login
 
try
{
    i.open (50, "select REMARKS from TEL_BOOK where ID = 1", db );                //query
 
      while (i.eof() == FALSE)
      {
           i >>remarks;      //retrieving data with memory leak
           ...
      }
}
catch (otl_exception &p )
{
    ...
}
//*********************************************************

natomiast nie powodujace wyciekow ma wygladac tak:

otl_connect db;
otl_stream i;
char remarks[600];
 
...
int main(...)
{
  otl_connect::otl_initialize();
  i.set_all_column_types(otl_all_num2str | otl_all_date2str );
  try{
    db.rlogon("userid/passwd@dsn");
    if(!i.good()){
      // stream is closed, let's open it
      i.open (50,
              "select REMARKS from TEL_BOOK where ID = 1",
              db );
    }else{
      // stream's already open, let's just rexecute the statement by
      // calling otl_stream::rewind(), see the manual for more detail.
      i.rewind();
    }
    while(!i.eof()){
      i >> remarks;
    }
  }
  catch (otl_exception &p ){
    ...
  }
  db.logoff();
  return 0;
}

klopot w tym ze nie znalazlem nigdzie informacji o wykorzystaniu i.rewind()
po wstawieniu w/w poprawek program mi sie po prostu od razu wywala. nie wiem o co dokladnie chodzi.

z gory dziekuje i pozdrawiam
Mariusz

[email protected]
http://www.mariuszzaleski.com