Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[opencv] Wysyłanie wektorów do bazy danych MySQL z pominięciem stringa

Ostatnio zmodyfikowano 2013-07-17 14:27
Autor Wiadomość
roserek
Temat założony przez niniejszego użytkownika
[opencv] Wysyłanie wektorów do bazy danych MySQL z pominięciem stringa
» 2013-07-16 15:19:56
Witam. To znowu ja :) Próbując udoskonalić moją aplikację chcę aby kopiowała wektory bezpośrednio do mysql z pominięciem stringa, czy to w ogóle jest możliwe ???

C/C++
FileStorage fs( ".yml", FileStorage::WRITE + FileStorage::MEMORY );

Ptr < FaceRecognizer > model0 = createmyfisherRecognizer();
model0->train( images, labels );
// save the model to eigenfaces_at.yaml
model0->save( fs );



C/C++
void myfisher::save( FileStorage & fs ) const {
   
    static char * host = "localhost"; /* host serwera MySQL */
    static char * user = "root"; /* nazwa loginu by polaczyc sie do serwera */
    static char * password = ""; /* haslo */
    static char * sql_db = "fisher"; /* nazwa bazy */
    static unsigned int sql_port = NULL; /* port na jakim odbiera/wysyla serwer mysql */
    static char * opt_socket = NULL; /* socket name */
    static unsigned int sql_flags = 0;
    static MYSQL * sock; /* Wskaznik do polaczenia do MySQL */
   
    sock = mysql_init( NULL );
   
    if( mysql_real_connect( sock, host, user, password, sql_db, sql_port, opt_socket, sql_flags ) )
         cout << "Poprawnie polaczyles sie z baza danych" << endl;
    else
         cout << "Blad w polaczeniu z baza danych" << endl;
   
    fs << "num_components" << _num_components;
    fs << "mean" << _mean;
    fs << "eigenvalues" << _eigenvalues;
    writeFileNodeList( fs, "projections", _projections );
    fs << "labels" << _labels;
   
    string buf = fs.releaseAndGetString();
   
    fs.release();
   
    string zapytanie = "insert into baa values (\"" + buf + "\")";
   
    if( !mysql_query( sock, zapytanie.c_str() ) )
         cout << "Poprawnie dodano" << endl;
    else
         cout << "Blad przy zapisywaniu" << endl;
   
}
 
Powyżej zamieściłem kod którego to dotyczy. W tej chwili działa to w ten sposób że wszystko jest zapisywane do zmiennej fs ( Filestorage ), później konwertowane na stringa i dopiero w takiej formie wrzucane do bazy danych. Wiadomo że program działał by wiele szybciej jeśli bezpośrednio było by kopiowane z pominięciem stringa do bazy danych.
P-88017
DejaVu
» 2013-07-16 15:39:32
Popraw temat tak, aby zawierał jakieś sensowne informacje. Aby dodawać cokolwiek do bazy danych musisz wysyłać do niej zapytania.
P-88018
roserek
Temat założony przez niniejszego użytkownika
» 2013-07-16 15:45:34
Wiem. Zapytanie jest i do bazy danych dodaje, bardziej chodzi mi o to aby skrócić kod (pominąć stringa itd), wszystko widać w kodzie wyżej. Jeśli w ogóle jest to możliwe...
P-88019
DejaVu
» 2013-07-16 16:50:44
Jedyną drogą komunikacji z bazą danych jest wysyłanie do niej zapytań.
P-88025
pekfos
» 2013-07-16 16:55:14
Można, co najwyżej, wywalić zmienną buf i pobierać dane od razu przy składaniu zapytania.
P-88027
roserek
Temat założony przez niniejszego użytkownika
» 2013-07-17 09:38:18
A co myślicie o napisaniu klasy ( funkcji ) na bazie "FileStorage" w której to od razu wysyłał bym dane do mysql ??? Można by zrobić w sposób który mówi pekfos ale ja chcę jeszcze po drodze formatować ten ciąg znaków. 
P-88067
DejaVu
» 2013-07-17 12:44:41
Nie to jest przedmiotem dyskusji. Nie ma innej drogi komunikacji z bazą danych niż wysyłanie zapytań. Jeżeli chcesz sobie pisać klasę do 'wygodnego' wysyłania zapytań to już jest Twoja wola, jednak nie ma opcji, abyś ominął potrzebę generowania zapytania SQL. Temat zamykam, bo odpowiedź na postawione pytanie w temacie uzyskałeś.
P-88073
roserek
Temat założony przez niniejszego użytkownika
» 2013-07-17 13:43:14
Nie to jest przedmiotem dyskusji... Ja nie pytam się JAK WYSYŁAĆ COŚ DO MYSQL, wtedy odpowiedz by była za pomocą zapytania. Ale w kodzie wyraźnie jest zapytanie i napisałem że do bazy danych wysyłam bez problemu. W temacie jest również napisane jak wysłać wektor z pominięciem stringa. A na to pytanie jednoznacznej odpowiedzi nie dostałem .
P-88078
« 1 » 2
  Strona 1 z 2 Następna strona