Re: Прямой SQL
Добавлено: 14 фев 2016, 13:26
в версии Atlantis 5.5.24 реализована поддержка Dual.insert into pick(wlist, crec)
select 1, #comp(1) from DUAL
union all select 1, #comp(2) from DUAL
union all select 1, #comp(23) from DUAL;
Обсуждение различных вопросов, связанных с сопровождением, администрированием и программированием
https://ns1.tyumbit.ru/
в версии Atlantis 5.5.24 реализована поддержка Dual.insert into pick(wlist, crec)
select 1, #comp(1) from DUAL
union all select 1, #comp(2) from DUAL
union all select 1, #comp(23) from DUAL;
Код: Выделить всё
dbo.toatldate(convert(datetime, substring(t$katparty.f$name, 1, 10), 103))
Код: Выделить всё
#date(cast(substring(katparty.name, 1, 2) as word), ...
Для сравнения, вестимо.edward_K писал(а):зачем преобразовывать в дату?
Ошибка преобразования значения varchar "01/10/2006" в тип данных intedward_K писал(а):попробовать Cast сразу в date
Вот это хорошая идея!edward_K писал(а):дату привести в строку с маской YYYYMMDD и сравнивать
Код: Выделить всё
var dbeg, dend: date;
...
SQLAddStr(strHandle, ' where basedoc.ddoc >= ? and basedoc.ddoc <= ?');
sqlPrepare(stmt, strHandle);
sqlBindParam(stmt, 1, dbeg);
sqlBindParam(stmt, 2, dend);
Код: Выделить всё
stmt := sqlAllocStmt;
sqlDropTmpTable('tbOracleData');
sqlAddStr(StmtString, 'table tbOracleData');
sqlAddStr(StmtString, '(');
sqlAddStr(StmtString, ' tNsap: String,');
sqlAddStr(StmtString, ' tviddv: String,');
sqlAddStr(StmtString, ' tzavod: string,');
sqlAddStr(StmtString, ' tsklad: String,');
sqlAddStr(StmtString, ' tparty: String,');
sqlAddStr(StmtString, ' tKsap: String,');
sqlAddStr(StmtString, ' tbarkod: String,');
sqlAddStr(StmtString, ' td56: String,');
sqlAddStr(StmtString, ' ted: String,');
sqlAddStr(StmtString, ' tkol: double');
sqlAddStr(StmtString, ');');
sqlCreateTmpTable(StmtString, ctmDynamicIndex);
sqlFreeStmt(stmt);
Код: Выделить всё
Message(TVMain.tmain.tNsap+' '+TVMain.tmain.tviddv+' '+TVMain.tmain.tzavod,0); // данные есть
stmt := sqlAllocStmt;
sqlAddStr(StmtString, 'INSERT INTO tbOracleData');
sqlAddStr(StmtString, '(');
sqlAddStr(StmtString, ' tNsap, tviddv, tzavod, tsklad, tparty, tksap, tbarkod, td56, ted, tkol');
sqlAddStr(StmtString, ')');
sqlAddStr(StmtString, 'VALUES');
sqlAddStr(StmtString, '(');
sqlAddStr(StmtString, ''''+ TVMain.tmain.tNsap + ''',');
sqlAddStr(StmtString, ''''+ TVMain.tmain.tviddv + ''',');
sqlAddStr(StmtString, ''''+ TVMain.tmain.tzavod + ''',');
sqlAddStr(StmtString, ''''+ TVMain.tmain.tsklad + ''',');
sqlAddStr(StmtString, ''''+ TVMain.tmain.tparty + ''',');
sqlAddStr(StmtString, ''''+ TVMain.tmain.tksap+ ''',');
sqlAddStr(StmtString, ''''+ TVMain.tmain.tbarkod+ ''',');
sqlAddStr(StmtString, ''''+ TVMain.tmain.td56+ ''',');
sqlAddStr(StmtString, ''''+ TVMain.tmain.ted+ ''',');
sqlAddStr(StmtString, ''''+ TVMain.tmain.tkol+ '''');
sqlAddStr(StmtString, ')');
sqlPrepare ( stmt, StmtString ); // текущий вариант
Message( sqlExecute ( stmt ),0); // возвращает 0
// sqlExecDirect(StmtString); пробовал и так
sqlFreeStmt(stmt);
RAJAH писал(а):Как на DSQL написать конструкцию типа?Код: Выделить всё
dbo.toatldate(convert(datetime, substring(t$katparty.f$name, 1, 10), 103))
Функцияругается на cast: "Ожидалось целое число".Код: Выделить всё
#date(cast(substring(katparty.name, 1, 2) as word), ...
Код: Выделить всё
sql
select name
from KATPARTY
inner join
(
select dsopr from katsopr where nsopr='11441122' // накладнуха такая именно от 14/10/2010 выписана , если перебить дату накладной например 15/10/2010 то в результат ничего не вернеться
)t1 on Cast(Substring(KATPARTY.name,1,2) as integer)+Cast(Substring(KATPARTY.name,4,2) as integer)*256+Cast(Substring(KATPARTY.name,7,4) as integer)*65536=t1.dsopr
where name='14/10/2010qwerty'
;
Rajan, не совсем понял мысль...RAJAH писал(а):savov
Похоже, дело вот в этих последовательностях: ''''
Код: Выделить всё
sqlAddStr(StmtString, 'INSERT INTO tblSalesNotaAuk');
sqlAddStr(StmtString, '(');
sqlAddStr(StmtString, ' knrec, datob, name, summa, NSklad, invero, country, rpl, vozvrat');
sqlAddStr(StmtString, ')');
sqlAddStr(StmtString, 'VALUES');
sqlAddStr(StmtString, '(');
sqlAddStr(StmtString, ''''+ String(tblSalesNotaAuk.knrec) + ''',');
sqlAddStr(StmtString, ''''+ GetDateAsPascalLongint(tblSalesNotaAuk.datob) + ''',');
sqlAddStr(StmtString, ''''+ tblSalesNotaAuk.name + ''',');
sqlAddStr(StmtString, ''''+ tblSalesNotaAuk.sum + ''',');
sqlAddStr(StmtString, ''''+ String(tblSalesNotaAuk.nSklad) + ''',');
sqlAddStr(StmtString, ''''+ tblSalesNotaAuk.invero + ''',');
sqlAddStr(StmtString, ''''+ tblSalesNotaAuk.country + ''',');
sqlAddStr(StmtString, ''''+ tblSalesNotaAuk.rpl + ''',');
sqlAddStr(StmtString, ''''+ tblSalesNotaAuk.vozvrat + '''');
sqlAddStr(StmtString, ')');