DSQL

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Marker
Сообщения: 4
Зарегистрирован: 06 май 2009, 16:12

DSQL

Сообщение Marker »

добрый день.

решил познакомиться с данной возможностью языка...
но зашел не далеко (((

объясните пжст в чем моя ошибка?

Код: Выделить всё

var stmt  : longInt;

stmt := sqlAllocStmt;
Message('Код sqlAllocStmt: ' + string(sqlErrorCode(stmt)));
в итоге:
Код sqlAllocStmt: 0
дальше писать код нет смысла - не работает.
И видимо от того, что sqlAllocStmt не срабатывает должным образом.
Ged
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение Ged »

sqlErrorCode

Назначение

Возвращает код последней ошибки.

Значит ошибок и не было
Marker
Сообщения: 4
Зарегистрирован: 06 май 2009, 16:12

Сообщение 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) не срабатывает ((
почему?
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Вообще то Ваш пример вполне рабочий. Надеюсь записи есть в точно в COUNTCMP ? а еще что пишется в лог ms70drv.log ну или ora у вас ....
Marker
Сообщения: 4
Зарегистрирован: 06 май 2009, 16:12

Сообщение Marker »

просмотрел логи оракловые...
- кривой запрос!

потоптавшись немного решил изменить текст запроса:

Код: Выделить всё

query := 'SELECT CTRANSP ' 
          + 'FROM COUNTCMP WHERE 0=0';
и О чудо! - заработало...

что за баг?
действительно ли это недоработка или что?
почему без WHERE 0=0 не работатет?
Marker
Сообщения: 4
Зарегистрирован: 06 май 2009, 16:12

Сообщение Marker »

Marker писал(а):просмотрел логи оракловые...
- кривой запрос!
всмысле не опечатка, а запрос преобразованный средствами атлантиса
Ответить