Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];

Вниз

Что значит ошибка Compilied code for this line is too long   Найти похожие ветки 

 
Кирей   (2008-08-15 09:21) [0]

Возникает во время дизайна, когда ADOQuery.active ставлю true интересует собственно, это ограничение ado или ошибка в запросе?
Запрос собран из работающих кусков, проверял уже раз пять полностью.


 
Palladin ©   (2008-08-15 09:39) [1]

а в run-time не возникает?


 
Кирей   (2008-08-15 09:47) [2]

в run-time то же самое


 
Palladin ©   (2008-08-15 09:51) [3]

какой тип исключения?


 
Кирей   (2008-08-15 09:56) [4]

класс EOLEException


 
easy ©   (2008-08-15 10:12) [5]

http://vfp.narod.ru/Vfp/help/fox02388.htm


 
Anatoly Podgoretsky ©   (2008-08-15 10:16) [6]

> Кирей  (15.08.2008 9:21:00)  [0]

Это точное сообщение об ошибке?
Не должно быть такого сообщение, это сообщение от компилятора.
Ты ничего не врешь?


 
Кирей   (2008-08-15 10:48) [7]

Откомпилированная прога выдает эту ошибку когда я активирую запрос.
Если активировать запрос в среде Delphi в дизайнтайме, та же ошибка.


 
Кирей   (2008-08-15 10:50) [8]


> easy ©   http://vfp.narod.ru/Vfp/help/fox02388.htm

Тоесть ОДБС не принимает?


 
Кирей   (2008-08-15 11:02) [9]

Убрал два подзапроса, заработало, буду оптимизировать.
Есть какой ОДБС для фокса без этих ограничений?


 
sniknik ©   (2008-08-15 11:23) [10]

> Есть какой ОДБС для фокса без этих ограничений?
в ссылке есть упоминание ОДБС? по моему там все ясно и конкретно написано. удачи в поисках...


 
Anatoly Podgoretsky ©   (2008-08-15 11:39) [11]

> Кирей  (15.08.2008 11:02:09)  [9]

Так и продолжаешь темнить?


 
Anatoly Podgoretsky ©   (2008-08-15 11:41) [12]


> sniknik ©   (15.08.08 11:23) [10]

В базе знаний подробная информация о проблеме, но автор не хочет сотрудничать, так что пусть ищет сам.


 
sniknik ©   (2008-08-15 12:09) [13]

> В базе знаний подробная информация о проблеме
это не то, если ты имеешь ввиду ошибку компилятора дельфи, это аналогичная ошибка другого компилятора/(интерпретатора).

> так что пусть ищет сам.
да тут и искать не надо, по ссылке полное обьяснение в котором есть и инфа как/что исправить.
а вот чего там нет так это упоминаний ОДБС... каким образом надо читать чтобы увидеть связь с ним загадка.


 
Кирей   (2008-08-15 12:13) [14]


> Так и продолжаешь темнить?

Да не темню я, дословно ошибка в дебагере:
Заголовок окна сообщениия: Debugder Exception Notification
Само сообщение: Project Otchot.exe raised exception class EOLEException with message "Compilied code for this line is too long". Process stoped. Use Step or Run to continue.
Если выполнить прогу вне Delphi выдает просто ошибку Compilied code for this line is too long.
Использую Microsoft OLE DB Provider for Visual FoxPro 9
Ну могу еще скрин окна кинуть :(


 
Кирей   (2008-08-15 12:18) [15]


> sniknik ©  

Я понял, что драйвер Visual FoxPro не может обработать запрос такой длинны, что запрос нужно разбить на два или оптимизировать. Но была надежда на альтернативное решение вопроса


 
sniknik ©   (2008-08-15 12:53) [16]

> запрос такой длинны
какой еще запрос, если в ссылке речь про строку?

если продолжишь читать не то, что написано, а то чего мерещится то есть ли смысл продолжать чтение? может для начала к психоаналитику? пусть он тебя научит видеть реальность такой какая она есть. для технического специалиста это жизненно необходимо...

> или оптимизировать.
это не мешает сделать и без ошибок, если конечно возможно.


 
Кирей   (2008-08-15 14:28) [17]


>  может для начала к психоаналитику?

Обязательно, только сначала объясни почему если сократить тот же запрос, то все прекрасно работает (убирал разные подзапросы - результат один, тоесть в тексте запроса нет ошибки).
Сейчас в запросе 11623 символа.


 
Anatoly Podgoretsky ©   (2008-08-15 15:14) [18]

> sniknik ©   (15.08.08 12:09) [13]

Не только другого компилятора, но и база другая, от производителя этого компилятора, и в ней гораздо более подробная информация, чем по ссылке.


 
Anatoly Podgoretsky ©   (2008-08-15 15:15) [19]

Кирей   (15.08.08 12:18) [15]
Так ты не приводишь текст запроса, но он не должен быть более 8к, и откомпилированый 4К


 
sniknik ©   (2008-08-15 15:16) [20]

> почему если сократить тот же запрос, то все прекрасно работает
судя по всему он у тебя весь в одну строчку.

> результат один, тоесть в тексте запроса нет ошибки
ошибка не в запросе (т.е. не в синтаксисе), а в том что есть строки/строка больше длинны которую может "переварить" компилятор.

для случая который имел в виду АП. попробуй чтонибудь (процедуру к примеру) написать в одну строку (> 256 символов вроде), получишь то же самое только из другого места.


 
Anatoly Podgoretsky ©   (2008-08-15 15:16) [21]

Кстати информация из [14] должна была быть в [0] + текст запрос или хотя бы информация о размере.


 
sniknik ©   (2008-08-15 15:18) [22]

> Так ты не приводишь текст запроса, но он не должен быть более 8к, и откомпилированый 4К
при этом ошибка звучит вроде немного по другому... (?)


 
Anatoly Podgoretsky ©   (2008-08-15 15:19) [23]


> какой еще запрос, если в ссылке речь про строку?

После того как выяснилось что речь про Visual FoxPro то многое стало понятнее, но причем тут ODBC, когда далее про тоже, но уже OLE DB

Так вот в ФоксПро одна строка означает не одну строку, а весь запрос, который не может быть более 8К ни в каких случаях. Это из известной базы знаний.


 
Anatoly Podgoretsky ©   (2008-08-15 15:21) [24]

> sniknik ©   (15.08.08 15:16) [20]

Он какой то не разговорчивый, ближе к партизану, чем к человеку, может думает, что это нам нужно решение.

http://www.podgoretsky.com/Redir.aspx?id=213&DownloadFile=~/ddp/howtoask.aspx


 
Anatoly Podgoretsky ©   (2008-08-15 15:23) [25]


> для случая который имел в виду АП. попробуй чтонибудь (процедуру
> к примеру) написать в одну строку (> 256 символов вроде),
>  получишь то же самое только из другого места.

Общего только строка, но случаи разные.


 
sniknik ©   (2008-08-15 15:30) [26]

> Так вот в ФоксПро одна строка означает не одну строку, а весь запрос
не может быть. в ODBC драйвера фокса возможны пакеты команд, и возврат "мультирекордсетов".
типа
select * from a ;
select * from d

с nextrecordset потом.

что полностью, имхо, исключает равенство строка = запрос... т.к. в таком случае это было бы невозможно. (хотя я конечно могу и неправильно интерпретировать принципы по каким он работает...)


 
Кирей   (2008-08-15 15:59) [27]


> в ODBC драйвера фокса возможны пакеты команд, и возврат
> "мультирекордсетов".типа select * from a ;select * from
> dс nextrecordset потом.

Где об этом можно подробнее почитать?


> Так ты не приводишь текст запроса, но он не должен быть
> более 8к, и откомпилированый 4К

Текст запроса, но все равно переделывать нужно:

select d1.kontroler, d1.nashkontroler, d.ls, d1.abonent, d1.namenp, d1.namestr, d1.dom, d1.kwart, d1.lastppok as predpok, d.pok as konpok, d.vsegokvt,  d1.adress
from
(select d.ls, d1.vsegokvt, d.pok
from "\09_2008\obhod.dbf" d
left join
(select d.ls, sum(dd.kvt) as vsegokvt
from "abon.dbf" d
left join
(select d.ls, iif(abs(d.lastppok-d4.pok)<abs(cast(10^d5.znak as integer)+d4.pok-d.lastppok), abs(d4.pok-d.lastppok), abs(cast(10^d5.znak as integer)+d4.pok-d.lastppok)) as kvt
from (("abon.dbf" d
left join "\08_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\09_2008\obhod" d4 on d.ls=d4.ls)
left join(select d.ukod, d.datein, dd.znak from "lich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ukod=d5.ukod
where (d4.pok>0)
and (d5.datein<d.lastfee)
union all
select d.ls, iif(abs(d.lastppok-d5.poksn)<abs(cast(10^d5.znak as integer)+d5.poksn-d.lastppok), abs(d5.poksn-d.lastppok), abs(cast(10^d5.znak as integer)+d5.poksn-d.lastppok)) as kvt
from (("abon.dbf" d
left join "\08_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\09_2008\obhod" d4 on d.ls=d4.ls)
left join(select d.ukod, d.datein, d.poksn, d.ls, d.datech, dd.znak from "chlich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ls=d5.ls
where (d4.pok>0)
and (d5.datech>iif(isnull(d2.dateout), d.lastfee, d2.dateout))
and (d5.datein<iif(isnull(d2.dateout), d.lastfee, d2.dateout))
union all
select d.ls, iif(abs(d5.lastppok-d5.poksn)<abs(cast(10^d5.znak as integer)+d5.poksn-d5.lastppok), abs(d5.poksn-d5.lastppok), abs(cast(10^d5.znak as integer)+d5.poksn-d5.lastppok)) as kvt
from (("abon.dbf" d
left join "\08_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\09_2008\obhod" d4 on d.ls=d4.ls)
left join(select d.ukod, d.lastppok, d.datein, d.poksn, d.ls, d.datech, dd.znak from "chlich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ls=d5.ls
where (d4.pok>0)
and (d5.datech>iif(isnull(d2.dateout), d.lastfee, d2.dateout))
and (d5.datein>iif(isnull(d2.dateout), d.lastfee, d2.dateout))
and (d5.datech<d4.data)
and (d5.datein<d4.data)
union all
select d.ls, iif(abs(d.pok1-d4.pok)<abs(cast(10^d5.znak as integer)+d4.pok-d.pok1), abs(d4.pok-d.pok1), abs(cast(10^d5.znak as integer)+d4.pok-d.pok1)) as kvt
from (((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod.dbf" d4 on d.ls=d4.ls)
left join "abon.dbf" d6 on d.ls=d6.ls)
left join (select d.ukod, d.datein, dd.znak from "lich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d6.ukod=d5.ukod)
where (d4.pok>0) and (d5.datein<d6.lastfee) and (d4.nzon=1)
union all
select d.ls, iif(abs(d.pok2-d4.pok)<abs(cast(10^d5.znak as integer)+d4.pok-d.pok2), abs(d4.pok-d.pok2), abs(cast(10^d5.znak as integer)+d4.pok-d.pok2)) as kvt
from (((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod.dbf" d4 on d.ls=d4.ls)
left join "abon.dbf" d6 on d.ls=d6.ls)
left join (select d.ukod, d.datein, dd.znak from "lich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d6.ukod=d5.ukod)
where (d4.pok>0) and (d5.datein<d6.lastfee) and (d4.nzon=2)
union all
select d.ls, iif(abs(d.pok3-d4.pok)<abs(cast(10^d5.znak as integer)+d4.pok-d.pok3), abs(d4.pok-d.pok3), abs(cast(10^d5.znak as integer)+d4.pok-d.pok3)) as kvt
from (((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod.dbf" d4 on d.ls=d4.ls)
left join "abon.dbf" d6 on d.ls=d6.ls)
left join (select d.ukod, d.datein, dd.znak from "lich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d6.ukod=d5.ukod)
where (d4.pok>0) and (d5.datein<d6.lastfee) and (d4.nzon=3)
union all
select d.ls, iif(abs(d.pok4-d4.pok)<abs(cast(10^d5.znak as integer)+d4.pok-d.pok4), abs(d4.pok-d.pok4), abs(cast(10^d5.znak as integer)+d4.pok-d.pok4)) as kvt
from (((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod.dbf" d4 on d.ls=d4.ls)
left join "abon.dbf" d6 on d.ls=d6.ls)
left join (select d.ukod, d.datein, dd.znak from "lich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d6.ukod=d5.ukod)
where (d4.pok>0) and (d5.datein<d6.lastfee) and (d4.nzon=4)
union all
select d.ls, iif(abs(d.pok1-d5.poksn)<abs(cast(10^d5.znak as integer)+d5.poksn-d.pok1), abs(d5.poksn-d.pok1), abs(cast(10^d5.znak as integer)+d5.poksn-d.pok1)) as kvt
from ((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod" d4 on d.ls=d4.ls)
left join(select d.ukod, d.datein, d.poksn, d.ls, d.datech, dd.znak from "chlich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ls=d5.ls)
left join "abon.dbf" d6 on d.ls=d6.ls
where (d4.pok>0)
and (d5.datech>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datein<iif(isnull(d2.dateout), d6.lastfee, d2.dateout))



 
Кирей   (2008-08-15 16:00) [28]

union all
select d.ls, iif(abs(d.pok2-d5.poksn2)<abs(cast(10^d5.znak as integer)+d5.poksn2-d.pok2), abs(d5.poksn2-d.pok2), abs(cast(10^d5.znak as integer)+d5.poksn2-d.pok2)) as kvt
from ((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod" d4 on d.ls=d4.ls)
left join(select d.ukod, d.datein, d.poksn2, d.ls, d.datech, dd.znak from "chlich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ls=d5.ls)
left join "abon.dbf" d6 on d.ls=d6.ls
where (d4.pok>0)
and (d5.datech>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datein<iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
union all
select d.ls, iif(abs(d.pok3-d5.poksn3)<abs(cast(10^d5.znak as integer)+d5.poksn3-d.pok3), abs(d5.poksn3-d.pok3), abs(cast(10^d5.znak as integer)+d5.poksn3-d.pok3)) as kvt
from ((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod" d4 on d.ls=d4.ls)
left join(select d.ukod, d.datein, d.poksn3, d.ls, d.datech, dd.znak from "chlich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ls=d5.ls)
left join "abon.dbf" d6 on d.ls=d6.ls
where (d4.pok>0)
and (d5.datech>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datein<iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
union all
select d.ls, iif(abs(d.pok4-d5.poksn4)<abs(cast(10^d5.znak as integer)+d5.poksn4-d.pok4), abs(d5.poksn4-d.pok4), abs(cast(10^d5.znak as integer)+d5.poksn4-d.pok4)) as kvt
from ((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod" d4 on d.ls=d4.ls)
left join "abon.dbf" d6 on d.ls=d6.ls)
left join(select d.ukod, d.datein, d.poksn4, d.ls, d.datech, dd.znak from "chlich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ls=d5.ls
where (d4.pok>0)
and (d5.datech>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datein<iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
union all
select d.ls, iif(abs(d5.lastppok-d5.poksn)<abs(cast(10^d5.znak as integer)+d5.poksn-d5.lastppok), abs(d5.poksn-d5.lastppok), abs(cast(10^d5.znak as integer)+d5.poksn-d5.lastppok)) as kvt
from ((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod" d4 on d.ls=d4.ls)
left join(select d.ukod, d.lastppok, d.datein, d.poksn, d.ls, d.datech, dd.znak from "chlich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ls=d5.ls)
left join "abon.dbf" d6 on d.ls=d6.ls
where (d4.pok>0)
and (d5.datech>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datein>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datech<d4.data)
and (d5.datein<d4.data)
union all
select d.ls, iif(abs(d5.lastppok2-d5.poksn2)<abs(cast(10^d5.znak as integer)+d5.poksn2-d5.lastppok2), abs(d5.poksn2-d5.lastppok2), abs(cast(10^d5.znak as integer)+d5.poksn2-d5.lastppok2)) as kvt
from ((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod" d4 on d.ls=d4.ls)
left join(select d.ukod, d.lastppok2, d.datein, d.poksn2, d.ls, d.datech, dd.znak from "chlich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ls=d5.ls)
left join "abon.dbf" d6 on d.ls=d6.ls
where (d4.pok>0)
and (d5.datech>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datein>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datech<d4.data)
and (d5.datein<d4.data)
union all
select d.ls, iif(abs(d5.lastppok3-d5.poksn3)<abs(cast(10^d5.znak as integer)+d5.poksn3-d5.lastppok3), abs(d5.poksn3-d5.lastppok3), abs(cast(10^d5.znak as integer)+d5.poksn3-d5.lastppok3)) as kvt
from ((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod" d4 on d.ls=d4.ls)
left join(select d.ukod, d.lastppok3, d.datein, d.poksn3, d.ls, d.datech, dd.znak from "chlich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ls=d5.ls)
left join "abon.dbf" d6 on d.ls=d6.ls
where (d4.pok>0)
and (d5.datech>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datein>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datech<d4.data)
and (d5.datein<d4.data)
union all
select d.ls, iif(abs(d5.lastppok4-d5.poksn4)<abs(cast(10^d5.znak as integer)+d5.poksn4-d5.lastppok4), abs(d5.poksn4-d5.lastppok4), abs(cast(10^d5.znak as integer)+d5.poksn4-d5.lastppok4)) as kvt
from ((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod" d4 on d.ls=d4.ls)
left join(select d.ukod, d.lastppok4, d.datein, d.poksn4, d.ls, d.datech, dd.znak from "chlich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ls=d5.ls)
left join "abon.dbf" d6 on d.ls=d6.ls
where (d4.pok>0)
and (d5.datech>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datein>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datech<d4.data)
and (d5.datein<d4.data)
union all
select d.ls, iif(abs(d5.npok-d4.pok)<abs(cast(10^d5.znak as integer)+d4.pok-d5.npok), abs(d4.pok-d5.npok), abs(cast(10^d5.znak as integer)+d4.pok-d5.npok)) as kvt
from ((("\07_2008\zonkvt.dbf" d
left join "\07_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\08_2008\obhod" d4 on d.ls=d4.ls)
left join "abon.dbf" d6 on d.ls=d6.ls)
left join(select d.ukod, d.datein, d.npok, dd.znak from "lich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d6.ukod=d5.ukod
where (d4.pok>0)
and (d5.datein>iif(isnull(d2.dateout), d6.lastfee, d2.dateout))
and (d5.datein<d4.data)
and (d4.nzon=1)
union all
select d.ls, iif(abs(d5.npok-d4.pok)<abs(cast(10^d5.znak as integer)+d4.pok-d5.npok), abs(d4.pok-d5.npok), abs(cast(10^d5.znak as integer)+d4.pok-d5.npok)) as kvt
from (("abon.dbf" d
left join "\08_2008\nach.dbf" d2 on d.ls=d2.ls)
left join "\09_2008\obhod" d4 on d.ls=d4.ls)
left join(select d.ukod, d.datein, d.npok, dd.znak from "lich.dbf" d, "lichinf.dbf" dd where d.shifr=dd.kod) d5 on d.ukod=d5.ukod
where (d4.pok>0)
and (d5.datein>iif(isnull(d2.dateout), d.lastfee, d2.dateout))
and (d5.datein<d4.data)) dd on d.ls=dd.ls
group by d.ls)d1 on d.ls=d1.ls
where (d1.vsegokvt>300) and (d.nzon=0)) d
left join
 ( select d.ls, d.lastppok, d.fio as abonent, d6.fio as nashkontroler, d3.fio as kontroler, d4.namenp, d5.namestr, d.dom, d.kwart,
trim(d4.NAMENP)+" вул."+trim(d5.NAMESTR) + iif(trim(d.dom)<>"", " б.","   ")+ltrim(d.dom) + iif(trim(d.korpus)<>"", "/"," ")+trim(d.korpus) +iif(trim(d.kwart)<>"", " кв.","    ")+ltrim(d.kwart)  as adress
from ((((("abon.dbf" d
left join "/09_2008//obhod" d2 on d.ls=d2.ls)
left join  "/09_2008/cont_zd.dbf" d1 on d2.kodcont=d1.kod_obh)
left join  "continf.dbf" d3 on d1.kod_cont=d3.tabn)
left join "npinf.dbf" d4 on d.kodnp=d4.kod)
left join "streetin.dbf" d5 on d.kodstrit=d5.kod)
left join  "continf.dbf" d6 on d.kodcont=d6.tabn
) d1 on d.ls=d1.ls
order by   2, 5, 6, 7, 8



 
Кирей   (2008-08-15 16:11) [29]

Закрывайте обсуждение, буду переделывать


 
Anatoly Podgoretsky ©   (2008-08-15 18:57) [30]

> sniknik  (15.08.2008 15:30:26)  [26]

Здесь два запроса, даже если ты запишешь в одну строку

select * from a select * from d


 
sniknik ©   (2008-08-15 19:42) [31]

нет, в "моем" случае результат
Выполнено применительно к 87 записям
              применительно к 13 записям
(2 случайных таблици взял)

в "твоем"
EOleException : [Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword

у тебя нет разделителя строк ";", вот если вставить то да поймет, но все равно если есть разделитель по которому движок делит, то даже одна строка для него содержит 2. оперирует то он именно ими, а не тем что "пришло" (почему и думаю ошибки должны различаться, т.к. операция до парсинга, над общим текстом, а после операция уже компилятора над строками).

вот для mssql это было бы без разницы, у него парсер более интеллектуальный.


 
sniknik ©   (2008-08-15 19:45) [32]

> вот для mssql это было бы без разницы
без разницы, в смысле, что он бы понял, но к компилятору это бы все одно пришло в виде двух строк (конечно если я правильно себе представляю как они работают).


 
Anatoly Podgoretsky ©   (2008-08-16 11:41) [33]


> нет, в "моем" случае результат

Приведи полный текст, а то по вырваному нельзя сказать, что это, поскольку в ФоксПро символ ";" это продолжение строки.


 
Anatoly Podgoretsky ©   (2008-08-16 11:44) [34]

Во всяком случае это другие строки, не физические, поскольку "обычно" любой интерпритатор игнорирует переводы строк и пробелы, делет по лексемам а не по орфографическим элементам.


 
sniknik ©   (2008-08-16 12:59) [35]

> Приведи полный текст,
все то что приводил сдесь, не более
первый результат для запроса
select * from a ;
select * from d

Выполнено применительно к 87 записям
               применительно к 13 записям

второй, ошибка для
select * from a select * from d
EOleException : [Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword

> поскольку в ФоксПро символ ";" это продолжение строки.
может быть, по крайней мере раньше в досовом фоксе так и было, когда писал на нем, можно было писать так к примеру
select field1, ;
field2  ;
from a
т.е. это было типа продолжение строки(команды)

сейчас для драйверов ODBC/OLEDB фокса этот синтаксис неверен.
подобный запрос приводит к ошибке
EOleException : [Microsoft][ODBC Visual FoxPro Driver]Command is missing required clause

в общем для ODBC это сейчас разделитель команд, как писал, для OLEDB это завершение команды... т.е. все что после ; будет проигнорировано, и никаких "мультирекордсетов". (разница атас конечно. и это не единственное подобное отличие. нафига они так сделали х.з.)


 
Anatoly Podgoretsky ©   (2008-08-16 14:07) [36]

> sniknik  (16.08.2008 12:59:35)  [35]

То есть ты это набираешь в ФоксПро, поскольку Дельфи на это обругает и не скомпилирует.


 
sniknik ©   (2008-08-16 14:59) [37]

"все это" набирается в программке написанной на дельфи, с различными подключениями (провайдерами).

фокспро у меня нет вообще с ... не помню гдето 99-2000 года.  писать на нем перестал еще раньше. третий вариант -
select field1, ;
field2  ;
from a
(кстати приведенный только потому, что ты о фоксе вспомнил, о другом значении разделителя в нем) приведен по памяти, и предположительно, непосредственно в фоксе сработает (если память не подводит. даже в новом), а то что получается в дельфевой программке (ошибка) приведено.


 
Кирей   (2008-08-19 14:19) [38]

вот нашел в чем дело и как бороться, только не знаю как прикрутить к своей проге
http://www.sql.ru/forum/actualthread.aspx?tid=399002&hl=long


 
Кирей   (2008-08-19 14:19) [39]

вот нашел в чем дело и как бороться, только не знаю как прикрутить к своей проге
http://www.sql.ru/forum/actualthread.aspx?tid=399002&hl=long


 
sniknik ©   (2008-08-19 15:00) [40]

никак не бороться, это не твой случай, по ссылке
> "через VF OLE DB 9.0:",
у тебя  
> Тоесть ОДБС не принимает?
> Есть какой ОДБС для фокса без этих ограничений?

почитай еще раз то, что я писал, в основном насчет различий между ними. это вообще 2 разных драйвера, чисто по недоумению от одной конторы.



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.043 c
15-1217973694
Tricky
2008-08-06 02:01
2008.09.28
Delphi 7 и XP x64


15-1218125932
ProgRAMmer Dimonych
2008-08-07 20:18
2008.09.28
Системе не удаётся найти указанное устройство


3-1207037596
Karburator
2008-04-01 12:13
2008.09.28
отменить добавление записи в триггере


15-1217784260
Украинец
2008-08-03 21:24
2008.09.28
Адаптер COM-порта для Notebook рабьотающий под DOS


8-1186323330
bagos
2007-08-05 18:15
2008.09.28
Online music editor





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский