Tak więc logi już okazały się być przydatne :-)
Aplikacja "wysypuje się" podczas inicjalizacji zmiennych danymi pobranymi z bazy.
Robię to w dość specyficzny sposób, ponieważ rezultat zapytania bazy danych, przechowywany jest w zmiennej typy MYSQL_ROW, a pobrane dane muszę przypisać do zmiennych typu char. W dokumentacji MySQL ( praktycznie też to sprawdziłem ) strcpy dla typu MYSQL_ROW i char nie działa poprawnie.
Robię to w ten sposób :
Jest to metoda klasy odpowiedzialnej za logowanie użytkownika do bazy danych.
_wiersz - tak jak wyżej napisałem, typ MYSQL_ROW ( tablica wiersz[0], wiersz[1] )
element - składnik klasy typu char *
pole - numer kolumny danego wiersza
_dlugosc - to mysql_fetch_lengths(rezultat), również typ tablicowy, określa rozmiar kolejnych elementów pobieranych z bazy danych
mysqlrow_to_char(MYSQL_ROW _wiersz, unsigned long * _dlugosc, char *& element, int pole)
{
char str_buffer[100]; // zmienna pomocnicza
// wyzerowanie zmiennej str_buffer
ZeroMemory(str_buffer, sizeof(str_buffer));
if(element != NULL)
{
delete element;
element = 0;
// kopiowanie obszaru pamięci
memcpy(str_buffer, _wiersz[pole], _dlugosc[pole]);
// dbcięcie zmiennej buffer
str_buffer[_dlugosc[pole]] = 0;
// alokowanie pamięci dla składnika klasy
element = new char[strlen(str_buffer)+1];
// przypisanie składnikowi klsay wartosci
strcpy(element, str_buffer);
}
else
{
// kopiowanie obszaru pamięci
memcpy(str_buffer, _wiersz[pole], _dlugosc[pole]);
// dbcięcie zmiennej buffer
str_buffer[_dlugosc[pole]] = 0;
// alokowanie pamięci dla składnika klasy
element = new char[strlen(str_buffer)+1];
// przypisanie składnikowi klsay wartosci
strcpy(element, str_buffer);
}
}
Pewnie tutaj coś jest źle, ale za bardzo nie potrafię dojść co.
Można prosić o uwagi co do tego kodu ?
Pozdrawiam