конфиги с логикой для инсертов в БД

Тема в разделе "WASM.UNIX", создана пользователем raisin, 5 окт 2009.

  1. raisin

    raisin New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2009
    Сообщения:
    4
    делаю енджин для предварительной конфирурации инсертов с базу. Данные получаю из сокета, потом парсю их вроде как...
    if(recv_data[0] == 0x01 ) {
    offset+len[1];
    first_to_insert = recv_data[len[2]]+offset;
    offset+len[2];
    .. итд
    }
    в другом случае получнные данные могут быть сдвинуты, это зависит от типа отправителя
    int offset=2;
    if(recv_data[1]+offset == 0x05 ) {
    offset+len[2];
    first_to_insert = recv_data[len[3]]+offset;
    ...
    }
    в итоге я имею несколько буферов с нужными данными first/second_to_insert
    INSERT INTO tab (first,second) values('value from first','value from second');
    т.е. менять последовательность INSERT INTO tab (first,second) или INSERT INTO tab (second,first) - не выход, т.к. от разных девайсов я могу получать разные последовательности, даже если из разных сокетов\портов.
    len[x] - в этом буфере лежит длина поля, это задается в конфиге. т.е. у меня длины tlv заданы в конфиге на каждый девайс отправитель. и на некоторые tlv заданы значения которые нужно предварительно проверить(что-то вроде хэндшейка) выше это 0x01 и 0x05

    собственно как сделать так, что-бы не промазать и нужный полученный буфер(из сокета) правильно соотносить с буфером для инсерта в БД?
     
  2. _ir4_Y_

    _ir4_Y_ New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    76
    А собственно причем тут ассемблер и UNIX
    я в топике ничего подобного не увидел

    ЗЫ
    перед тем как писать на С изучи хотябы русский язык текст нечитабельный...

    ЗЗЫ
    как я понял first_to_insert и second_to_insert массивы
    а ты делашь присваивание first_to_insert = recv_data[len[2]]+offset;

    на лицо непонимание того что происходит
     
  3. raisin

    raisin New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2009
    Сообщения:
    4
    нет, это указатели на char
     
  4. _ir4_Y_

    _ir4_Y_ New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    76
    Иди читай книги.....

    указатель - переменная для хранения адреса другой переменной

    а ты в него записываешь число...
     
  5. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Перевожу на русский язык:
    Товарищ считает, что мы помним его предыдущий пост про tlv и поняли его. Еще он считает, что мы сидим рядом и все видели. Но меня телепнуло:
    Анализируются сетевые обращения к базе на SQL. Перехваченные пакеты имеют вид :
    первый байт tlv и в зависимости от tlv и еще чего-то(тут телепатия бесильна) в буфере начиная с len находится текст запроса SQL. Т.к. товарищ Си в упор не знает, он просит помочь.
    ТЯЖЕЛЫЙ СЛУЧАЙ.
     
  6. _ir4_Y_

    _ir4_Y_ New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    76
    valterg
    +1