
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
20.03.2006, 20:08
|
|||
|---|---|---|---|
|
|||
CALL интерфейс в ЛИНТЕР |
|||
|
#18+
Переносим приложения из Oracle в ЛИНТЕР. Есть табличка: PAR (PNAME VARCHAR(20), PVAL VARCHAR(50)) Читаю данные из неё: ... CHAR sql[]="SELECT PVAL FROM PAR WHERE PNAME='TEST'"; CHAR r[50]; ... err = LinterSLCT(&Cbl, PrzExe, sql, r, sizeof(r), NULL); Возвращает код ошибки 1014 (буффер маленький). Однако, если сделать CHAR r[52]; - то нормально. И результат приходится читать начиная со второго символа: r + 2 Почему такое происходит, может кто встречался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.03.2006, 20:31
|
|||
|---|---|---|---|
CALL интерфейс в ЛИНТЕР |
|||
|
#18+
Строки в C завершаются нулем. Достаточно определять буфер под текстовую переменную равным длина текста в БД плюс один. PAR (PNAME VARCHAR(20), PVAL VARCHAR( 50 )) CHAR sql[]="SELECT PVAL FROM PAR WHERE PNAME='TEST'"; CHAR r[ 50 + 1]; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.03.2006, 20:40
|
|||
|---|---|---|---|
CALL интерфейс в ЛИНТЕР |
|||
|
#18+
Да нет :-) Там просто в первых двух байтах физически длина сидит. Возник встречный вопрос: почему CALL-интерфейс? Не будет ли удобней использовать что-то более высокого уровня: ODBC, LinAPI etc... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=56&mobile=1&tid=2016445]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 336ms |

| 0 / 0 |
