|
|
|
Помогите с ibase.h
|
|||
|---|---|---|---|
|
#18+
Здраствуйте. Начну сразу с куска кода. char *str_stmt = "execute procedure LOG_POLLING1"; isc_dsql_prepare(status_vector, &tr_handle, &stmt, 0, str_stmt, 1, NULL ); isc_dsql_describe_bind(status_vector, &stmt, 1, isqlda); isc_dsql_execute(status_vector, &tr_handle, &stmt, 1, isqlda); Естественно сдезь опущенно много : коннект, транзакция, и много всяких проверок. Но смысл( или моя возможная ошибка) как, я считаю заключается в этих строчках. Проблема вот в чем : isc_dsql_describe_bind присваивает isqlda->sqld 0 . Т.е. если я не ошибаюсь это значит что в процедуре LOG_POLLING1 нет полей, хотя там 4 поля. Кто-нибудь сталкивался с такой проблемой? Или может кто-то знает в чем тут может быть дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 15:03 |
|
||
|
Помогите с ibase.h
|
|||
|---|---|---|---|
|
#18+
Ты перепутал isc_dsql_describe_bind() и isc_dsql_describe(). Первое нужно для параметров , а для данных, возвращаемых из SELECT, нужно второе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 15:18 |
|
||
|
Помогите с ibase.h
|
|||
|---|---|---|---|
|
#18+
Хм... с SELECT'ом и с isc_describe_bind'ом я разобрался. Все работает. Делал запрос "select * from give_pol" все получилось. Вопрос в том как передать данные хранимой процедуре. Еще раз повторяю : execute procedure LOG_POLLING1 . Мне нужно хранимой процедуре передать параметры, и если я не ошибаюсь то ф-ция isc_dsql_describe_bind именно и подготавливает XSQLDA для передачи данных(т.е. заполняет все поля). Но трабла в том что кол-во полей определенных bind'ом 0. Или я что-то напутал? Я новичок в этом поэтому могу ощибаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 15:27 |
|
||
|
Помогите с ibase.h
|
|||
|---|---|---|---|
|
#18+
ой ,извиняюсь... поправка в первом предложении... не с isc_dsql_describe_bind'ом а с isc_dsql_describ'ом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 15:29 |
|
||
|
Помогите с ibase.h
|
|||
|---|---|---|---|
|
#18+
Ты сколько аллокировал xsqlvar ? Чему равен sqln ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 15:30 |
|
||
|
Помогите с ibase.h
|
|||
|---|---|---|---|
|
#18+
Все !!! нашел решение : привожу кодом так как сильно тороплюсь. Кому надо разбрется. isc_stmt_handle stmt = NULL; char *str_stmt ; int f1 = 1,f2 = 2,f3 = 3; double d = 13.4; sprintf(str_stmt, "execute procedure LOG_POLLING1( %d, %d, %d, %lf)", f1, f2 ,f3 ,d); isc_dsql_allocate_statement(status_vector, &db, &stmt); isc_dsql_prepare(status_vector, &tr_handle, &stmt, 0, str_stmt, 1, NULL ); cout << "Execute : " << str_stmt << "...\n"; isc_dsql_execute(status_vector, &tr_handle, &stmt, 1, NULL); + естесвенно attach , start_transaction , commit и detach. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 16:17 |
|
||
|
|

start [/forum/topic.php?fid=40&tid=1579016]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 479ms |

| 0 / 0 |
