|
|
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
люди подскажите пожалуста! Столкнулся с проблемой: в SQLEXEC() написал запрос select main.number_out,ankd.ankfam,sprspec.dolg_rec from main,ankd,sprspec where main.n_insr=ankd.n_insr and main.spec_out=sprspec.kodspec and main.out_r='01' результат нулевой(курсор не создается), но стоит убрать второй end (третье условие выборки) select main.number_out,ankd.ankfam,sprspec.dolg_rec from main,ankd,sprspec where main.n_insr=ankd.n_insr and main.spec_out=sprspec.kodspec то результат появляется и соответственно курсор создается может в фоксе есть какие-то ограничения, так как до этого столкнулся проблемой длинного запроса в SQLEXEC и пришлось разбивать на строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 11:43 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
denrazлюди подскажите пожалуста! Столкнулся с проблемой: в SQLEXEC() написал запрос select main.number_out,ankd.ankfam,sprspec.dolg_rec from main,ankd,sprspec where main.n_insr=ankd.n_insr and main.spec_out=sprspec.kodspec and main.out_r='01' результат нулевой(курсор не создается), но стоит убрать второй end (третье условие выборки) select main.number_out,ankd.ankfam,sprspec.dolg_rec from main,ankd,sprspec where main.n_insr=ankd.n_insr and main.spec_out=sprspec.kodspec то результат появляется и соответственно курсор создается может в фоксе есть какие-то ограничения, так как до этого столкнулся проблемой длинного запроса в SQLEXEC и пришлось разбивать на строки. Во второй запрос втолкни main.out_r : select main.out_r,main.number_out,ankd.ankfam,sprspec.dolg_rec from main,ankd,sprspec where main.n_insr=ankd.n_insr and main.spec_out=sprspec.kodspec и посмотри, есть ли записи с main.out_r='01' ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 11:52 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Владимир СА Во второй запрос втолкни main.out_r : select main.out_r,main.number_out,ankd.ankfam,sprspec.dolg_rec from main,ankd,sprspec where main.n_insr=ankd.n_insr and main.spec_out=sprspec.kodspec и посмотри, есть ли записи с main.out_r='01' ??? Они там точно есть, да если бы их и не было то курсор все равно бы создался(правда пустой), а так он вообще не создается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 13:07 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Приведите полный текст команды формирование и исполнения команды SQLEXEC. И еще, что за сервер и какая версия VFP? С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 13:24 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
FoxPro 8.0 MSSQL server 2000 out_r1="01" STORE SQLSTRINGCONNECT('DRIVER=sql server;SERVER=10.22.0.122;UID=den;PWD=1;APP=Microsoft Visual FoxPro;WSID=MD;DATABASE=uchet'); TO gnConnHandle = SQLSETPROP(gnConnHandle, 'asynchronous', .F.) = SQLEXEC(gnConnHandle,"select main.number_out,ankd.ankfam,sprspec.dolg_rec from main,ankd,sprspec where main.n_insr=ankd.n_insr and main.spec_out=sprspec.kodspec and main.out_r='"+out_r1+"'", 'uchet_1') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 13:50 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Вместо = SQLEXEC(...) напишите retflag = SQLEXEC(...) и гляньте ?retflag Может ошибка в запросе и курсор sqlresult не создается ? С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 14:18 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Посмотри ошибку: Код: plaintext 1. 2. 3. А лучше сначала отладить запрос в Query analyser а потом в фоксе его пользовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 14:41 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Ну так что вы хотите!? Это флаг ошибки!! Тогда если -1 AERROR(lErr) ? m.lErr[5] ? m.lErr[2] denrazрезультат = -1 С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 14:42 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Aleksey-KНу так что вы хотите!? Это флаг ошибки!! Тогда если -1 AERROR(lErr) ? m.lErr[5] ? m.lErr[2] denrazрезультат = -1 С уважением, Алексей. ? m.lErr[5] выдает 170 ? m.lErr[2] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 15:03 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Паранормальные явления какие-то. В VFP 6 сталкивался с ограничением длины запроса - около 4000 символов. А такой запрос выполняется? : select * from main where main.out_r='01' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 15:27 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Dima TПаранормальные явления какие-то. В VFP 6 сталкивался с ограничением длины запроса - около 4000 символов. А такой запрос выполняется? : select * from main where main.out_r='01' выполняется. Все выполняется пока 2 AND(3 условие) не поставишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 15:34 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Попробуй для проверки ...main.out_r='"+out_r1+"'" замени на ...main.out_r='01'" может в out_r1 что-нибудь не то. Попробуй такой запрос: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 15:39 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Dima T С "out_r1" все нормально, с самого начала на нее грешил, но проверка показала что все с не хорошо. Dima TПопробуй для проверки Попробуй такой запрос: Код: plaintext 1. 2. 3. 4. а твое решение работает огромное спасибо, как сам не догадался так интерпретировать не знаю. всем спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 16:03 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
С точки зрения MЫ SQL Server оба запроса совершенно идеинтичны и план запроса он строит один и тот же на оба варианта (связывание таблиц через WHERE или через JOIN). Скорее всего ошибка в этой фразе: Код: plaintext 1. 2. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 18:17 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Aleksey-K даже когда вместо '"+out_r1+"'я ставлю обычную строку, ошибка все равно появляется. Методом исключений пришел к выводу что это связано со вторым and'ом(3 условием) к примеру: 1 пример запроса (результат правильный) Код: plaintext 1. 2. Код: plaintext 1. 2. но стоит добавить к одному из примеров 2 and(3 условие) то запрос не выполняется: Код: plaintext 1. 2. 3. , на самом сервере все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2006, 12:16 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Что значит обычную строку? У вас такая команда выполняется? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2006, 12:22 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
странно, но выполняется. спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2006, 13:25 |
|
||
|
SQLEXEC() и WHERE?
|
|||
|---|---|---|---|
|
#18+
Думаю, что вы напутали с ограничителями для строковой константы. У VFP их три равноправных: [], ", ' А у SQL Server только один полноценный - ' [] - это ограничитель для идентификаторов, а символ " имеет двойное значение в зависимости от установки на уровни сессии SET QUOTED_IDENTIFIER. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2006, 13:36 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33602254&tid=1592121]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 537ms |

| 0 / 0 |
