1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Запрос К Sql Базе

Тема в разделе "С и С++", создана пользователем Diana, 22 янв 2012.

  1. Diana

    Diana Гость

    Репутация:
    0
    добрый день.строка sql запроса больше 1024 символа,возникнет переполнение буфера,как обойти эту проблему?
    Код:
    CString		sDSN_MainDatabase,sDsn;
    CDatabase	Database_MainDatabase;
    SQLHSTMT	hstmt_int;
    SQLRETURN	retcode_int;
    TCHAR		SQL_Mainbase[10240];
    
    
    Database_MainDatabase.OpenEx("ODBC;DRIVER={SQL Server};DSN=DBase;UID=sa;PWD=server", CDatabase::noOdbcDialog);
    wsprintf(SQL_Mainbase,"INSERT INTO Table (ID,Name,BTime,FTime,ST,SP,N1D,S1D,N2D,S2D,N3D,S3D,N4D,S4D,N5D,S5D,N6D,S6D,N2
    1D,S21D,N25D,S25D,N26D,S26D,N27D,S27D,N28D,S28D,N29D,S29D,N30D,S30D,NDG3,SDG3,NDG
    4,SDG4,N31D,S31D,N33D,S33D,N34D,S34D,N36D,S36D,N38D,S38D,N9_10D,S9_10D,NDG5,SDG5,
    MPF)VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s');",ID,NAME,BTIME,ETIME,TOT,POV,D7,D8,D9,D10,D11,D12,D13,D14,D15,D16,D17,D18,D1
    9,D20,D21,D22,D23,D24,D25,D26,D27,D28,D29,D30,D31,D32,D33,D34,D35,D36,D37,D38,D39
    ,D40,D41,D42,D43,D44,D45,D46,D47,D48,D49,D50,D51);
    
    SQLAllocHandle(SQL_HANDLE_STMT, Database_MainDatabase.m_hdbc, &hstmt_int);
    SQLPrepare(hstmt_int, (SQLCHAR*)SQL_Mainbase, SQL_NTS);
    retcode_int = SQLExecute(hstmt_int);
    Database_MainDatabase.Close();
     
  2. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Не переполнять буфер!
     
  3. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Ты используешь wsprintf, но передаешь ей обычную строку. Используй sprintf.
     
Загрузка...

Поделиться этой страницей