обрезается запрос
Модераторы: m0p3e, edward_K, Модераторы
обрезается запрос
Люди, помогите !
Мой запрос почему-то обрезается !
Если это из-за того, что переменная string только 255 символов, то что делать ?
query:='select katos.innum,katos.nameos,spkatos.stoim,spkatos.sumizn,spkatos.stoim-spkatos.sumizn,'
+'attrval.vstring,dogovor.ddoc '
+'from katos,spkatos,prsb,attrval,attrnam,dogovor '
+'where (( root == spkatos.nrec and (spkatos.cnastros=3) '
+'and spkatos.ckatos/==katos.nrec and katos.cprsb/==prsb.nrec and ((prsb.kod=2) or (prsb.kod=6)) '
+'and katos.nrec/==attrval.crec(noindex) '
+'and attrval.cattrnam/==attrnam.nrec and (attrnam.name=''Договор залога'') '
+'and attrval.vstring/==dogovor.nodoc_ext(noindex) and (dogovor.viddog=107))) '
+'order external by attrval.vstring,dogovor.ddoc';
message(query);
sqlExecStmt(stmt, query);
Мой запрос почему-то обрезается !
Если это из-за того, что переменная string только 255 символов, то что делать ?
query:='select katos.innum,katos.nameos,spkatos.stoim,spkatos.sumizn,spkatos.stoim-spkatos.sumizn,'
+'attrval.vstring,dogovor.ddoc '
+'from katos,spkatos,prsb,attrval,attrnam,dogovor '
+'where (( root == spkatos.nrec and (spkatos.cnastros=3) '
+'and spkatos.ckatos/==katos.nrec and katos.cprsb/==prsb.nrec and ((prsb.kod=2) or (prsb.kod=6)) '
+'and katos.nrec/==attrval.crec(noindex) '
+'and attrval.cattrnam/==attrnam.nrec and (attrnam.name=''Договор залога'') '
+'and attrval.vstring/==dogovor.nodoc_ext(noindex) and (dogovor.viddog=107))) '
+'order external by attrval.vstring,dogovor.ddoc';
message(query);
sqlExecStmt(stmt, query);
Re: обрезается запрос
sqlAddStr
Пример - http://www.tyumbit.ru/gal_forum/viewtop ... =8&t=10938
Пример - http://www.tyumbit.ru/gal_forum/viewtop ... =8&t=10938
Re: обрезается запрос
пробую сделать так:
stmt := sqlAllocStmt;
sqlBindCol(stmt, 1, kol1);
sqlBindCol(stmt, 2, kol2);
sqlBindCol(stmt, 3, kol3);
sqlBindCol(stmt, 4, kol4);
sqlBindCol(stmt, 5, kol5);
sqlBindCol(stmt, 4, kol6);
sqlBindCol(stmt, 5, kol7);
sqlAddStr(query,'select katos.innum,katos.nameos,spkatos.stoim,spkatos.sumizn,spkatos.stoim-spkatos.sumizn,attrval.vstring,dogovor.ddoc ');
sqlAddStr(query,'from katos,spkatos,prsb,attrval,attrnam,dogovor ');
sqlAddStr(query,'where (( root == spkatos.nrec and (spkatos.cnastros=3) ');
sqlAddStr(query,'and spkatos.ckatos/==katos.nrec and katos.cprsb/==prsb.nrec and ((prsb.kod=2) or (prsb.kod=6)) ');
sqlAddStr(query,'and katos.nrec/==attrval.crec(noindex) and attrval.cattrnam/==attrnam.nrec and (attrnam.name='#39+'Договор залога'#39+') ');
sqlAddStr(query,'and attrval.vstring/==dogovor.nodoc_ext(noindex) and (dogovor.viddog=107))) ');
//sqlAddStr(query,'order external by attrval.vstring,dogovor.ddoc');
k_osh:=sqlPrepare(stmt,query); message(k_osh);
k_osh:=sqlExecute(stmt); message(k_osh);
сначала ошибка 30004
потом ошибка 311
stmt := sqlAllocStmt;
sqlBindCol(stmt, 1, kol1);
sqlBindCol(stmt, 2, kol2);
sqlBindCol(stmt, 3, kol3);
sqlBindCol(stmt, 4, kol4);
sqlBindCol(stmt, 5, kol5);
sqlBindCol(stmt, 4, kol6);
sqlBindCol(stmt, 5, kol7);
sqlAddStr(query,'select katos.innum,katos.nameos,spkatos.stoim,spkatos.sumizn,spkatos.stoim-spkatos.sumizn,attrval.vstring,dogovor.ddoc ');
sqlAddStr(query,'from katos,spkatos,prsb,attrval,attrnam,dogovor ');
sqlAddStr(query,'where (( root == spkatos.nrec and (spkatos.cnastros=3) ');
sqlAddStr(query,'and spkatos.ckatos/==katos.nrec and katos.cprsb/==prsb.nrec and ((prsb.kod=2) or (prsb.kod=6)) ');
sqlAddStr(query,'and katos.nrec/==attrval.crec(noindex) and attrval.cattrnam/==attrnam.nrec and (attrnam.name='#39+'Договор залога'#39+') ');
sqlAddStr(query,'and attrval.vstring/==dogovor.nodoc_ext(noindex) and (dogovor.viddog=107))) ');
//sqlAddStr(query,'order external by attrval.vstring,dogovor.ddoc');
k_osh:=sqlPrepare(stmt,query); message(k_osh);
k_osh:=sqlExecute(stmt); message(k_osh);
сначала ошибка 30004
потом ошибка 311
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: обрезается запрос
ну 311 обычно что нет данных . А 30004 описана в vipprogr.chm - Ошибка компиляции запроса DSQL. Смотрите ms70drv.log - там обычно идет сообщение в какой строке ошиблись.
А так вы попытались исполнить запрос из атлантиса на сервере, а там синтаксис то уже стандартный - никаких (()) и ==. Читайте доку по MSSQL. Поля указываете, как в атлантисе - преобразованием займется драйвер.
А так вы попытались исполнить запрос из атлантиса на сервере, а там синтаксис то уже стандартный - никаких (()) и ==. Читайте доку по MSSQL. Поля указываете, как в атлантисе - преобразованием займется драйвер.
Re: обрезается запрос
Я не понял: какие == и /==? Это ж D-SQL! inner или left join должны быть!
Re: обрезается запрос
Я обычно DSQL вот так делаю:novichok писал(а):Люди, помогите !
Мой запрос почему-то обрезается !
Если это из-за того, что переменная string только 255 символов, то что делать ?
query:='select katos.innum,katos.nameos,spkatos.stoim,spkatos.sumizn,spkatos.stoim-spkatos.sumizn,'
+'attrval.vstring,dogovor.ddoc '
+'from katos,spkatos,prsb,attrval,attrnam,dogovor '
+'where (( root == spkatos.nrec and (spkatos.cnastros=3) '
+'and spkatos.ckatos/==katos.nrec and katos.cprsb/==prsb.nrec and ((prsb.kod=2) or (prsb.kod=6)) '
+'and katos.nrec/==attrval.crec(noindex) '
+'and attrval.cattrnam/==attrnam.nrec and (attrnam.name=''Договор залога'') '
+'and attrval.vstring/==dogovor.nodoc_ext(noindex) and (dogovor.viddog=107))) '
+'order external by attrval.vstring,dogovor.ddoc';
message(query);
sqlExecStmt(stmt, query);
SQL select
katsopr.NREC
from
KATSOPR
join spsopr on spsopr.csopr=katsopr.nrec
join SPSOPR as spsoprmain on spsoprmain.NREC=spsopr.CSPSOPR
join KATSOPR as katsoprmain on katsoprmain.NREC=spsoprmain.CSOPR
where katsopr.vidsopr=106 and katsopr.tipsopr=1 and katsoprmain.NREC = :crec into tmpVoz;
где crec - это переменная, в которой лежит nrec нужного документа.
-
- Местный житель
- Сообщения: 1089
- Зарегистрирован: 04 сен 2008, 11:27
- Откуда: Москва
- Контактная информация:
Re: обрезается запрос
если вы используетеRAJAH писал(а):Я не понял: какие == и /==? Это ж D-SQL! inner или left join должны быть!
Код: Выделить всё
sqlAddStr(query, ..
Код: Выделить всё
sql select dogovor.nrec from dogovor;
Время ведет!
Re: обрезается запрос
А почему бы потом его с этим предикатом и не оставить?Masygreen писал(а):если вы используетеRAJAH писал(а):Я не понял: какие == и /==? Это ж D-SQL! inner или left join должны быть!то ваш запрос должен выполнятся в спаппорте с предикатом SQL т.е. пишите в саппорте и оно работает и в саппорте и в sqlAddStrКод: Выделить всё
sqlAddStr(query, ..
приводите свой запрос в выполнимый в саппорте с предикатом sql для началаКод: Выделить всё
sql select dogovor.nrec from dogovor;
Re: обрезается запрос
спасибо всем за помощь !