Страница 1 из 1
DSQL
Добавлено: 12 май 2009, 11:20
Marker
добрый день.
решил познакомиться с данной возможностью языка...
но зашел не далеко (((
объясните пжст в чем моя ошибка?
Код: Выделить всё
var stmt : longInt;
stmt := sqlAllocStmt;
Message('Код sqlAllocStmt: ' + string(sqlErrorCode(stmt)));
в итоге:
Код sqlAllocStmt: 0
дальше писать код нет смысла - не работает.
И видимо от того, что sqlAllocStmt не срабатывает должным образом.
Добавлено: 12 май 2009, 15:40
Ged
sqlErrorCode
Назначение
Возвращает код последней ошибки.
Значит ошибок и не было
Добавлено: 13 май 2009, 10:38
Marker
совершенно верно! прошу прощения - напутал!
предоставлю весть свой код:
Код: Выделить всё
var stmt : longInt;
var buf : record as table COUNTCMP;
var query : string;
stmt := sqlAllocStmt;
Message('stmt: ' + string(stmt));
sqlBindCol(stmt, 1, buf.CTRANSP);
query := 'SELECT CTRANSP '
+ 'FROM COUNTCMP';
sqlExecStmt(stmt,query);
Message('Код sqlExecStmt: ' + string(sqlErrorCode(stmt)));
while sqlFetch(stmt) = tsOk do
{
Message(buf.CTRANSP);
}
Message('Код sqlFetch: ' + string(sqlErrorCode(stmt)));
sqlFreeStmt(stmt);
результат такой:
Код: Выделить всё
- stmt: 122179896
- Код sqlExecStmt: 0
- Код sqlFetch: 24338
как видно, ошибок нет и
stmt что-то присвоил...
но
Message(buf.CTRANSP) не срабатывает ((
почему?
Добавлено: 13 май 2009, 11:22
Den
Вообще то Ваш пример вполне рабочий. Надеюсь записи есть в точно в COUNTCMP ? а еще что пишется в лог ms70drv.log ну или ora у вас ....
Добавлено: 13 май 2009, 14:53
Marker
просмотрел логи оракловые...
- кривой запрос!
потоптавшись немного решил изменить текст запроса:
Код: Выделить всё
query := 'SELECT CTRANSP '
+ 'FROM COUNTCMP WHERE 0=0';
и О чудо! - заработало...
что за баг?
действительно ли это недоработка или что?
почему без
WHERE 0=0 не работатет?
Добавлено: 13 май 2009, 14:55
Marker
Marker писал(а):просмотрел логи оракловые...
- кривой запрос!
всмысле не опечатка, а запрос преобразованный средствами атлантиса