Skocz do zawartości

H4X0R

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

H4X0R's Achievements

Newbie

Newbie (1/14)

0

Reputacja

  1. H4X0R

    Jeszcze raz MySql

    Dzieki na pewno do czegos sie przyda.
  2. H4X0R

    Jeszcze raz MySql

    A wiec zalozmy ze mam prosta baze danych +----+--------------+-------------------+ | id | imie | nick | +----+--------------+-------------------+ | 1 | piotrek| kruk | | 2 | michal | pablo | | 3 | marcin| mozg | +----+--------------+-------------------+ Jak mozna zrobic zeby np odczytac wartosci w wierszu 1 (tzn piotrek,kruk,1) i wyslac je do mojego programu Wiem ze przy pomocy "SELECT * FROM nazwa_tabeli WHERE id = 1" mozna znalezc ten wiersz tylko ze jak ja probuje wywolac to polecenie to zalamuje mi program, a po za tym co dalej zeby wyslac te zmienne do programu
  3. H4X0R

    MySql

    Wlasciwie to juz sobie poradzilem odpowiedz na to pytanie jest na https://dev.mysql.com/doc/mysql/en/mysql-stmt-execute.html mi to dziala tylko ze jest o wiele dluzszym sposobem
  4. H4X0R

    MySql

    Jesli chodzi o to czy sie lacze z baza to jestem tego pewien bo najpierw ustanawiam polaczenie pozniej tworze tabele jesli nie istnieje itp tylko ze przy tworzeniu tabeli i np bazy metoda z define dzialala a teraz nie. A twoj kod szczerze mowiac tez mi nie dziala :( moze ktos ma inny poysl
  5. H4X0R

    MySql

    A wiec chodzi o to ze chcialbym aby moj program komunikowal sie z baza danych ale nie moge nic zapisac do tabeli i nie wiem czemu?? Na razie udalo mi się połączyć stworzyć nową baze w niej tabele ale do tej tabeli nie moge nic zapisac probowalem tak ale nic sie nie dzialo #define INSERT_SAMPLE "INSERT INTO table1(col1) VALUES(mouse)" if (mysql_query(&mysql, INSERT_SAMPLE)) { MessageBox(NULL, "BLAD BLAD BLAD", "", NULL); } else { MessageBox(NULL, "OK3", "OK3", NULL); } jesli ktos wie jak to zrobic niech napisze kawalek kodu albo jakies wyjasnienie
  6. Wreszcie dziala wielkie dzieki moze analiza twojeg kodu pozwoli mi zie zorientowac w czym byl blad. W kazdym razie z twoim kodem tez mialem problem, na szczescie juz go rozwiazalem ( wiem ze cos zrobilem sam hehe :D ) Jeszcze raz wielkie dzieki.
  7. Wiesz wydaje mi sie ze funkcja send itd nie ma na to wplywa w kazdtm razie sprobowalem i nie zmienia to dzialania programu... Po drugie funkcji accept nie moge wlozyc do FD_ACCEPT skoro program wogole nie chce przejesc do wykonywania WM_USER => FD_ACCEPT wiec wtedy nie byloby polaczenia Po trzecie tu cos jest zle chyba z komunikatem bo wczoraj wsadzilem recv() w WM_TIMER i co kilka sekund odpbieralem te wiadomosci ale wtedy byly inne problemy np z wypisywaniem a wiec send i recv dzialaja polaczenie tez jest... Czekam na pomoc i dzieki
  8. Niestety nie dziala wiec zostaja fragmenty najpierv czesci SERVERA //... // petla komunikatow bo pewnie tu jest blad // LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_USER: switch(WSAGETSELECTEVENT(lParam)) { case FD_WRITE: send(m_socket, buf, 1024, 0); break; case FD_ACCEPT: MessageBox(NULL, "UDALO SIE", "INF", NULL); break; case FD_READ: break; } break; case WM_CREATE: //... break; case WM_COMMAND: hwnd = (HWND)lParam; if((hwnd == hwndWys) && (HIWORD(wParam) == BN_CLICKED)) { send(m_socket, buf, 1024, 0); } // tworzenie socketa i nawiazywanie polaczenia if((hwnd == hwndButton) && (HIWORD(wParam) == BN_CLICKED)) { int iResult = WSAStartup( MAKEWORD(2,2), &wsaData ); if ( iResult != NO_ERROR ) { MessageBox(NULL, "ERROR", "ERROR", NULL); } m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP ); if ( m_socket == INVALID_SOCKET ) { MessageBox(NULL, "ERROR", "ERROR", NULL); WSACleanup(); } sockaddr_in service; service.sin_family = AF_INET; service.sin_addr.s_addr = inet_addr( "127.0.0.1" ); service.sin_port = htons( 27015 ); if ( bind( m_socket, (SOCKADDR*) &service, sizeof(service) ) == SOCKET_ERROR ) { MessageBox(NULL, "ERROR", "ERROR", NULL); closesocket(m_socket); } if ( listen( m_socket, 1 ) == SOCKET_ERROR ) MessageBox(NULL, "ERROR", "ERROR", NULL); MessageBox(NULL, "CZEKANIE NA POLACZENIE", "ERROR", NULL); while (1) { AcceptSocket = SOCKET_ERROR; while ( AcceptSocket == SOCKET_ERROR ) { AcceptSocket = accept( m_socket, NULL, NULL ); } MessageBox(NULL, "POLACZONO", "ERROR", NULL); m_socket = AcceptSocket; break; } } WSAAsyncSelect(m_socket, hwnd, WM_USER, FD_ACCEPT | FD_READ | FD_WRITE); break; i to chyba tyle waznego teraz kod klienta LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_CREATE: //... break; case WM_COMMAND: hwnd = (HWND)lParam; if((hwnd == hwndButton) && (HIWORD(wParam) == BN_CLICKED)) { int iResult = WSAStartup( MAKEWORD(2,2), &wsaData ); if ( iResult != NO_ERROR ) { MessageBox(NULL, "Błąd przy starcie WSA", "ERROR", NULL); } m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP ); if ( m_socket == INVALID_SOCKET ) { MessageBox(NULL, "Błąd w gnieździe", "ERROR", NULL); WSACleanup(); } sockaddr_in clientService; clientService.sin_family = AF_INET; clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" ); clientService.sin_port = htons( 27015 ); if ( connect( m_socket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) { MessageBox(NULL, "Nie udało się połączyć", "ERROR", NULL); WSACleanup(); } WSAAsyncSelect(m_socket, hwnd, WM_USER, FD_CONNECT | FD_READ | FD_WRITE); } break; case WM_USER: switch(WSAGETSELECTEVENT(lParam)) { case FD_READ: recv(m_socket, buf, 1024, 0); NewLine(buf, hwndRich) ; // wypisanie kazdej nowej wiadomosci w nowym wierszu break; case FD_CONNECT: break; case FD_WRITE: break; } break; i to chyba wszystko mam nadzieje ze pomozesz bo sie juz z tym mecze od kilku dni i na kazdym forum jest jak to zrobic ale u mnie to nie dziala :D mam nadzieje ze o niczym nie zapomnialem
  9. nie wiem czy mnie dobrze zrozumiecie ale chodzi o to ze mam taki program internetowy ktory przesyla z jednego richedita do drugiego(klient - server) wlasciwie wszystko jest dobrze tylko nie moge znalesc komunikatu ktory jest wysylany kiedy wiadomosc dochodzi do klienta. bo jak umieszcze to w wm_timer to co jakis czas bedzie sprawdzal czy jest jakas wiadomosc a ja bym chcial wiedziec od razu bez przeciazania programu?? Juz wlasciwie wiem jak nalezy to zrobic ale ciagle nie dziala probowalem uzyc wsaasyncselect ale to nie dziala tzn wykonuje ta funkcje tworze w niej komunikat WM_USER + 1 i FD_READ ale gdy z servera wysylam wiadomosc funkcja send client w petli komunikatow wogole nie przechodzi do WM_USER + 1 nie mam pojecia czemu jesli ktos moze niech mi to wytlumaczy lub napisze kawalek kodu...
×
×
  • Utwórz nowe...