Страница 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 писал(а):просмотрел логи оракловые...
- кривой запрос!
всмысле не опечатка, а запрос преобразованный средствами атлантиса