Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запуск процедуры SQL из С++
|
|||
|---|---|---|---|
|
#18+
Ребята, кто-нибудь когда-нибудь запускал процедуру SQL из С++. Вот что я делаю: strftime ( buf, 128, "%Y%m%d %H:%M:%S", localtime(&tm) ); CDatabase db; db.OpenEx("DSN=ИмяДСН;UID=ИмяДСН;PWD=пароль", CDatabase::noOdbcDialog); sprintf(sql, "TestProc '%s'", buf); db.ExecuteSQL (sql); Процедура называется TestProc (простая вставка записи). вылетает на строке sprintf(sql, "TestProc '%s'", buf); Если кто знает, подскажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2002, 13:50 |
|
||
|
Запуск процедуры SQL из С++
|
|||
|---|---|---|---|
|
#18+
Попробуй посмотреть что у тебя в переменной SQL. Помоему что-то с кавычками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2002, 14:03 |
|
||
|
Запуск процедуры SQL из С++
|
|||
|---|---|---|---|
|
#18+
Вот эта строка. sprintf ( sql , " TestProc ' %s ' " , buf ) ; Вроде все кавычки на месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2002, 16:14 |
|
||
|
Запуск процедуры SQL из С++
|
|||
|---|---|---|---|
|
#18+
А под sql память выделена? И в достаточном количестве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 08:05 |
|
||
|
Запуск процедуры SQL из С++
|
|||
|---|---|---|---|
|
#18+
Мне стыдно признаться, но насчет памяти я незнаю. Я только-только начал изучать С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 08:58 |
|
||
|
Запуск процедуры SQL из С++
|
|||
|---|---|---|---|
|
#18+
Сначала надо определить длинну для sql что бы при выполнении sprintf ты не вылез за границы памяти отведенной для sql. можно примерно оценить размер strlen("TestProc ' ' ")<15+strlen(buf)<30 итого в 45 знаков ты уложишься. и тогда char sql[45]; sprintf(sql," TestProc ' %s '",buf); можно динамически выделить память, только ее надо потом ОБЯЗАТЕЛЬНО освободить. char* sql; sql=malloc(14+strlen(buf)); //см примечание if (sql==NULL) { //обрабатываешь ситуацию когда память не выделена } else { sprintf(sql," TestProc ' %s '",buf); } Примечание вместо malloc обычно используют оператор new, хотя сам new в конечном счете все равно использует malloc или __dbg_malloc() имя второго точно непомню при этом в _DEBUG build после того как прога отработает в окошке Debug показываются утечки памяти если таковы были. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 14:42 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=485&tid=2036509]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 274ms |
| total: | 399ms |

| 0 / 0 |
