TQuery: Problem with SQL statement
14 отговора
336 прегледа
TQuery: Problem with SQL statement
Za6to Query.Open() v Delphi7 kazva: 'Capability not supported'
na slednata SQL zaiavka:
select *
from call, calls
where
calls.cid = call.id and
call.act = 1 and
call.calling = 954001 and
calls.status in ( 0, 3 );
kato mahna 'in' se opravia (zameneno e s =), no kazva 'Table is readonly'
na slednata SQL zaiavka:
select *
from call, calls
where
calls.cid = call.id and
call.act = 1 and
call.calling = 954001 and
calls.status in ( 0, 3 );
kato mahna 'in' se opravia (zameneno e s =), no kazva 'Table is readonly'
Re: TQuery: Problem with SQL statement
Пробвай следното:
- select *.call,*.calls from ....
- вместо calls.status in ( 0, 3 ); пробвай с 'and' т.e. ..... and status.calls = 0 and status.calls = 3. Обърнал си реда на табл и колоната. Ако ти трябва статуса да е от 1 до 3 използвай between
- Тези имена на таблици(?) са доста подозрителни. особенно 'call'. Aко можеш промени ги на нещо друго.
- select *.call,*.calls from ....
- вместо calls.status in ( 0, 3 ); пробвай с 'and' т.e. ..... and status.calls = 0 and status.calls = 3. Обърнал си реда на табл и колоната. Ако ти трябва статуса да е от 1 до 3 използвай between
- Тези имена на таблици(?) са доста подозрителни. особенно 'call'. Aко можеш промени ги на нещо друго.
Re: TQuery: Problem with SQL statement
'Capability not supported':
CAPABILITY
[.keipў'biliti] 1. дееспособност, способност, талант
2. рl потенциални възможности, неизявени качества/способности
NOT
[nЈt] 1. отр. на модални, спомагателни и смислови гл., ост. след смислов гл. не
I do NOT know, ост. I know NOT не зная
2. с part, inf, ger не
SUPPORT
[sў'pЈ:t] I. 1. поддържам, подкрепям, подпирам, подпомагам, одобрявам, насърчавам
2. търпя, понасям, издържам (тежест. натиск и пр.)
.........................
Кое не е ясно?
Очевидно тази възможност не се поддържа от твоя сървър (ти си знаеш кой е, но не смяташ за необходимо да ни кажеш на нас
)
Можеш да замениш calls.status in ( 0, 3 ) на (calls.status=0 or calls.status=3)
Това би трябвало да се поддържа от всички
CAPABILITY
[.keipў'biliti] 1. дееспособност, способност, талант
2. рl потенциални възможности, неизявени качества/способности
NOT
[nЈt] 1. отр. на модални, спомагателни и смислови гл., ост. след смислов гл. не
I do NOT know, ост. I know NOT не зная
2. с part, inf, ger не
SUPPORT
[sў'pЈ:t] I. 1. поддържам, подкрепям, подпирам, подпомагам, одобрявам, насърчавам
2. търпя, понасям, издържам (тежест. натиск и пр.)
.........................
Кое не е ясно?
Очевидно тази възможност не се поддържа от твоя сървър (ти си знаеш кой е, но не смяташ за необходимо да ни кажеш на нас
Можеш да замениш calls.status in ( 0, 3 ) на (calls.status=0 or calls.status=3)
Това би трябвало да се поддържа от всички
Re: TQuery: Problem with SQL statement
Abe uj znaia English ....
Mersi za prevoda
Lo6oto e 4e vryzvaiki se kym sy6tia server prez konzola ili MyphpAdmin
tozi select si minava idealno ( az tam go sastavih ).
Kogato re6a oba4e da go pusna prez TQuery Delphito mi dava exception.
Taka 4e problema si e v Delphi i sigurno byrkam niakade sas na4ina na connect.
Pls kajete osven s TQuery kak po drug na4in da se izpylni zaiavka?
Mersi za prevoda
Lo6oto e 4e vryzvaiki se kym sy6tia server prez konzola ili MyphpAdmin
tozi select si minava idealno ( az tam go sastavih ).
Kogato re6a oba4e da go pusna prez TQuery Delphito mi dava exception.
Taka 4e problema si e v Delphi i sigurno byrkam niakade sas na4ina na connect.
Pls kajete osven s TQuery kak po drug na4in da se izpylni zaiavka?
Re: TQuery: Problem with SQL statement
ОК ще пиша на български ама моля помогнете.
При това се оказва че TQuery се държи странно и при други случаи
и хвърля ексепшъни всеки път щом му се зададе малко по-сложна
конструкция...
При това се оказва че TQuery се държи странно и при други случаи
и хвърля ексепшъни всеки път щом му се зададе малко по-сложна
конструкция...
Re: TQuery: Problem with SQL statement
Знаеш ли, въпросът ти звучи много близко до "Имам проблем. Тука нещо ми гърми. Моля помогнете!". Обаче какъв ти е проблема? Кое е това нещо? Каква грешка ти дава? Кога? Не е ясно...
А сега вземи и напиши - каква база данни ползваш? Кои са SQL-ите които не вървят? Каква грешка ти дава? Какво означава "се държи странно"? Кои са "другите случаи"?
Просто ще трябва да дадеш малко информация за да получиш смислен отговор...
А сега вземи и напиши - каква база данни ползваш? Кои са SQL-ите които не вървят? Каква грешка ти дава? Какво означава "се държи странно"? Кои са "другите случаи"?
Просто ще трябва да дадеш малко информация за да получиш смислен отговор...
Re: TQuery: Problem with SQL statement
Ами мога да дам следните примери:
1. ........Status in ( 0, 3 );
т.е. не поддържа in
2. ........Order by id asc;
т.е. за Делфи asc е непозната ключова дума
3. ........Limit 4;
т.е. Limit довежда до грешка.
4. Когато се прави JOIN на две таблици дава грешка Table is readonly.
1. ........Status in ( 0, 3 );
т.е. не поддържа in
2. ........Order by id asc;
т.е. за Делфи asc е непозната ключова дума
3. ........Limit 4;
т.е. Limit довежда до грешка.
4. Когато се прави JOIN на две таблици дава грешка Table is readonly.
Re: TQuery: Problem with SQL statement
Мисля, че не ти е съвсем ясен механизма на работа на Делфи с бази данни.
На Делфи синтаксиса на SQL му е абсолютно непознат и не го поддържа, защото не му е необходимо. Той трябва да се поддържа от твоя неизвестен нам сървър (страшно секретен трябва да е щом не ни го казваш
) Тук една кристална топка май премигна, като споменавам MySQL
SQL изразите само се предават от компонентите (напр. TQuery) през компонентите за връзка (напр. TDatabase) и евентуално съответния драйвер (напр ODBC) до твоя сървър. Сървъра обработва заявката и връща по обратния път резултата (при успех) или съответното съобщение за грешка (твоя случай
)
Надявам се сега разбираш защо настояваме да разберем каква база ползваш.
По т.т. 1 - 3:
Ако тези изрази минават през MyphpAdmin, а дават грешка (хубаво беше да дадеш текста на грешката, а сега пак се налага да гледам в кристалната топка
) през твоето приложение е вероятно или да се свързваш с друг сървър, или да ползваш непълноценен драйвер, или ... още бог знае какво
По т.4 би могъл да ползваш напр. TUpdateSQL, или ... Но по-добре като за начало да се справиш с по-простата задачка да получиш какъв да е select без грешка, пак после ще го правиш обновяем
На Делфи синтаксиса на SQL му е абсолютно непознат и не го поддържа, защото не му е необходимо. Той трябва да се поддържа от твоя неизвестен нам сървър (страшно секретен трябва да е щом не ни го казваш
SQL изразите само се предават от компонентите (напр. TQuery) през компонентите за връзка (напр. TDatabase) и евентуално съответния драйвер (напр ODBC) до твоя сървър. Сървъра обработва заявката и връща по обратния път резултата (при успех) или съответното съобщение за грешка (твоя случай
Надявам се сега разбираш защо настояваме да разберем каква база ползваш.
По т.т. 1 - 3:
Ако тези изрази минават през MyphpAdmin, а дават грешка (хубаво беше да дадеш текста на грешката, а сега пак се налага да гледам в кристалната топка
По т.4 би могъл да ползваш напр. TUpdateSQL, или ... Но по-добре като за начало да се справиш с по-простата задачка да получиш какъв да е select без грешка, пак после ще го правиш обновяем
Редактирано от NDeu на
Re: TQuery: Problem with SQL statement
Мерси за съветите NDeu!!!
Сървъра е MySQL 4.22 за Windows, така май разбулих една от кристалните топки:) , драйвера е ODBC3.51. Инак е вярно, че не съм много наясно с механизма на работа на Делфи с бази данни - използвам засега само TQuery. Това което ме шашва е че една SQL конструкция, която работи през конзола, MyPHPAdmin или TOAD(не знам дали някои е чувал за този tool за MySQL), записана в Делфи дава гореспоменатите проблеми. Т.е. неща които по принцип работят през Делфи дават ядове. Забелязах че една от честите грешки е:
"Capability not supported" - когато използвам in, и затова тази грешка я писах първа.
Ако мога поне нея да реша ще се пооправят някои неща :)
Същата конструкция през гореспоменатите програми си минава като пич.
Е стига от мене ПОМАГАЙТЕ!!!
Сървъра е MySQL 4.22 за Windows, така май разбулих една от кристалните топки:) , драйвера е ODBC3.51. Инак е вярно, че не съм много наясно с механизма на работа на Делфи с бази данни - използвам засега само TQuery. Това което ме шашва е че една SQL конструкция, която работи през конзола, MyPHPAdmin или TOAD(не знам дали някои е чувал за този tool за MySQL), записана в Делфи дава гореспоменатите проблеми. Т.е. неща които по принцип работят през Делфи дават ядове. Забелязах че една от честите грешки е:
"Capability not supported" - когато използвам in, и затова тази грешка я писах първа.
Ако мога поне нея да реша ще се пооправят някои неща :)
Същата конструкция през гореспоменатите програми си минава като пич.
Е стига от мене ПОМАГАЙТЕ!!!
Re: TQuery: Problem with SQL statement
Хайде и аз да опитам телепатичните си способности :)
Query.RequestLive да е false
Оправя ли проблема?
Query.RequestLive да е false
Оправя ли проблема?
Re: TQuery: Problem with SQL statement
Благодаря ще го пробвам днес вечерта, че сега сървъра ми не работи :)
SQLQRYMODE
Опитай също така да смениш SQLQRYMODE на alias-а да е SERVER и да видим какво ще стане
Re: TQuery: Problem with SQL statement
Емо много благодаря всичко се оправи проблема беше в RequestLive