Страница 1 из 1

nrec в DSQL запросе (( Help

Добавлено: 18 мар 2010, 14:30
ex3em
Доброго времени суток =)

Столкнулся с проблемой (((
Не могу заставить запрос работать

_nrec типа comp

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

    query := 'SELECT name FROM Katstroy WHERE Katstroy.cstroy = ' + _nrec;
    sqlPrepare(stmt, query);
    sqlExecStmt(stmt, query);

    while (sqlFetch(stmt) = tsOk) do
    {
        message('запрос сработал');
    }
а вот такой код работает

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

if ((getFirst Katstroy where Katstroy.cstroy = _nrec) = tsOk)
{
    message('запрос сработал');
}
очевидно проблема в формировании строки query, как правильно перевести _nrec, чтобы запрос отработал. ((((

Добавлено: 18 мар 2010, 14:40
ex3em
Вопрос снимается )) Нашёл как это делается

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

    sqlBindParam(stmt, 1, _nrec);
    query := 'SELECT name, nrec FROM Katstroy where Katstroy.cstroy = ?';
    
    sqlPrepare(stmt, query);
    sqlExecStmt(stmt, query);

    while (sqlFetch(stmt) = tsOk) do
    {
        message('запрос сработал');
    } 

Добавлено: 18 мар 2010, 15:32
Vik
Еще так должно работать:
query := 'SELECT name, nrec FROM Katstroy where Katstroy.cstroy = #comp('+_nrec +')';

Добавлено: 18 мар 2010, 16:53
ex3em
Vik писал(а):Еще так должно работать:
query := 'SELECT name, nrec FROM Katstroy where Katstroy.cstroy = #comp('+_nrec +')';
Попробовал - не сработало (((

Добавлено: 18 мар 2010, 19:31
Vik
Странно, посмотрел у себя, много где использовал подобную конструкцию и работает..

Добавлено: 18 мар 2010, 19:42
ex3em
Vik писал(а):Странно, посмотрел у себя, много где использовал подобную конструкцию и работает..
Возможно, просто что-то в версиях различается (у меня на Оракле база). Спасибо большое за помощь :) всегда приятно, когда помогают )