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

Вниз

Oracle через ADO   Найти похожие ветки 

 
oracle.nooby   (2006-11-16 10:41) [0]

Здрасьте всем. Я сконнектился к оракловой базе через ADO. Соединение ок, а вот почему то ADOQuery не работает... На любой мой запрос, заранее корректный отвечает ora-00900, типа неправильный SQL запрос.
Кто нибудь подскажет что это может быть?


 
Sergey13 ©   (2006-11-16 10:47) [1]

> отвечает ora-00900, типа неправильный SQL запрос.
> Кто нибудь подскажет что это может быть?
Это может быть неправильный запрос. А что, есть еще версии?


 
oracle.nooby   (2006-11-16 10:49) [2]

запрос обычный. ну например
select * from table
/
где таблица точно есть.
аналогичный запрос на SQLPlus работает без проблем


 
Sergey13 ©   (2006-11-16 10:52) [3]

> аналогичный запрос на SQLPlus работает без проблем

Под одним логином?


 
oracle.nooby   (2006-11-16 10:54) [4]

> Под одним логином?

Да, конечно. Ведь под другим такой таблицы нет... (ну или не та)


 
Ksan ©   (2006-11-16 10:57) [5]

конект связал?


 
Sergey13 ©   (2006-11-16 10:58) [6]

> [2] oracle.nooby   (16.11.06 10:49)
> запрос обычный. ну например
> select * from table
> /
А что значит этот слеш /, он реально есть в запросе?


 
oracle.nooby   (2006-11-16 10:59) [7]

???
в ADOQuery настроил тока Connection=ADOConnection1 и DataSource=DataSource1...
В качестве запроса передаю ADOQuery.SQL.Text=Memo1.Lines.Text
Потом вызываю ADOQuery.Open и получаю exception об 00900


 
oracle.nooby   (2006-11-16 11:00) [8]


> он реально есть в запросе?

Да я написал то что передаю. Две строчки.. Запрос+/


 
Курдль ©   (2006-11-16 11:00) [9]


> Sergey13 ©   (16.11.06 10:58) [6]
> > [2] oracle.nooby   (16.11.06 10:49)
> > запрос обычный. ну например
> > select * from table
> > /
> А что значит этот слеш /, он реально есть в запросе?


Тогда действительно в SQL+ работать будет, а в АДО - нет.


 
Ksan ©   (2006-11-16 11:05) [10]

+ 9 ?? да ну :) кричит однако на слеш :)))


 
Ksan ©   (2006-11-16 11:05) [11]

или в оракле это коментарить ?


 
Sergey13 ©   (2006-11-16 11:06) [12]

> [8] oracle.nooby   (16.11.06 11:00)

Выкинь его из запроса. Этот слэш команда повторного исполнения (если мне не изменяет память) SQLPlus.


 
oracle.nooby   (2006-11-16 11:08) [13]

слеш это аналог term в IB.


> Тогда действительно в SQL+ работать будет, а в АДО - нет.

Пробовал "по-разному"... И с ним и без него.. Вообще не думая экцепшн шлет


 
k2 ©   (2006-11-16 11:15) [14]

oracle.nooby   (16.11.06 11:08) [13]
сделай запрос
ADOQuery.SQL.Text := "select 1 from dual";


 
oracle.nooby   (2006-11-16 11:18) [15]


> k2

ошибки нет, ничего не выбирает...


 
k2 ©   (2006-11-16 11:20) [16]

ну тогда ADOQuery.SQL.Text := "select 1 as col1 from dual"; :)


 
oracle.nooby   (2006-11-16 11:24) [17]

все зашибись =)) выбрал единицу...
это фокус, да? =))


 
k2 ©   (2006-11-16 11:25) [18]

да это фокус :) знают только гуру :)


 
k2 ©   (2006-11-16 11:26) [19]

в смысле все хорошо с ораклом, думай про запрос


 
oracle.nooby   (2006-11-16 11:29) [20]


> все хорошо с ораклом

уже спокойнее... спасибо


 
k2 ©   (2006-11-16 11:32) [21]

ну вобщемто это было сразу ясно раз он тебе оракловую ошибку выдавал :)


 
oracle.nooby   (2006-11-16 11:34) [22]


> оракловую ошибку

дак я с ораклом первый день работаю на практике.. и мне не нравится что он не конкретизирует что ему не нравится. типа IB или ACCESS говорят что приняли и где ошибка..


 
Sergey13 ©   (2006-11-16 11:37) [23]

> [22] oracle.nooby   (16.11.06 11:34)
> типа IB или ACCESS говорят что приняли и где ошибка..
Где они это тебе говорят?


 
oracle.nooby   (2006-11-16 11:41) [24]


> Где они это тебе говорят?

в сообщении об ошибке: номер ошибки, название ошибки и строка запроса (с номером строки\символа) где возникла ошибка. а драйвер access (из odbc) еще и зам запрос весь пришлет который он получил


 
ANB ©   (2006-11-16 12:32) [25]


> oracle.nooby   (16.11.06 11:34) [22]

Поставь ОДАК - будет тебе расшифровка, где и что не так.


 
Игорь Шевченко ©   (2006-11-16 12:36) [26]


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


Он только на третий день начинает конкретизировать


 
sniknik ©   (2006-11-16 12:44) [27]

> Где они это тебе говорят?
по возможности, конечно, иногда тоже трудновато понять

но вот на запрос
SELECT xxx FROM aaa
ошибка
"Ядро базы данных Microsoft Jet не может найти входную таблицу или запрос "aaa".  Проверьте существование таблицы или запроса и правильность имени"

явно понятнее чем невразумительное оракловское ora-xxxxx error.


 
k2 ©   (2006-11-16 12:55) [28]

sniknik ©   (16.11.06 12:44) [27]
ora-00900 invalid SQL statement
ora-00903 invalid table name
ora-00904 invalid column name
помоему вполне внятно :)


 
Sergey13 ©   (2006-11-16 13:00) [29]

> [27] sniknik ©   (16.11.06 12:44)

> явно понятнее чем невразумительное оракловское ora-xxxxx
> error.

Те-же
ORA-00900 invalid SQL statement
ORA-00903 invalid table name

ИМХО ничем не хуже.
Кстати, интересно, а что вернет Аксес на сабжевый запрос из [2] oracle.nooby   (16.11.06 10:49) со слэшем?


 
sniknik ©   (2006-11-16 13:22) [30]

> со слэшем?
Ошибка синтаксиса в предложении FROM


 
Sergey13 ©   (2006-11-16 13:25) [31]

> [30] sniknik ©   (16.11.06 13:22)

Равнозначно, ИМХО. Оракл - рулез форева! 8-)


 
sniknik ©   (2006-11-16 13:32) [32]

> Равнозначно, ИМХО.
ну вот я бы не сказал, конкретики на порядок больше...
а уж когда многострочный, сложный запрос (ну не в access. тут таких не делаю. в mssql) то получить указание с тем что, в какой строке, плюс частично указание как решить... поприятнее будет чем просто "invalid SQL statement"...

> Оракл - рулез форева! 8-)
твои проблемы...


 
ANB ©   (2006-11-16 13:37) [33]


> а уж когда многострочный, сложный запрос (ну не в access.
>  тут таких не делаю. в mssql) то получить указание с тем
> что, в какой строке, плюс частично указание как решить..
> . поприятнее будет чем просто "invalid SQL statement"...
>  

Никаких проблем. Оракл заодно возвращает место ошибки в виде строка/колонка. Одак позволяет эти данные смотреть (насчет DOA - не в курсе). Не будь этого  - как бы мы отлаживались то в девелопере или тоаде ?


 
sniknik ©   (2006-11-16 13:48) [34]

> возвращает место ошибки в виде строка/колонка. Одак позволяет эти данные смотреть
аааа... так это все оказывается есть, он просто скрывает эту инфу от вражеской технологии(ADO), ей подсовывает урезанную версию... а так он белый и пушистый? партизан. ;о))
ну тут уж не знаю... проблема налицо, но вот чья она...

а может это не он, а сам Одак делает анализ запроса???


 
k2 ©   (2006-11-16 14:02) [35]

sniknik ©   (16.11.06 13:48) [34]
может просто адо - Пракситель, на свой лад? :)


 
Игорь Шевченко ©   (2006-11-16 14:10) [36]

И вообще оракл маст дай.


 
sniknik ©   (2006-11-16 14:26) [37]

> может просто адо - Пракситель, на свой лад? :)
это вряд ли, получаемые ошибки один в один соответствуют тем что хелпах оригинальных sql серверов.

т.е. я могу открыть JETERR40.CHM, и найти соответствующее [30]
3131        Ошибка синтаксиса в предложении FROM.

уверен, в хелпе оракла такие описания тоже есть и скорее всего они будут соответствовать ~"ora-00900 invalid SQL statement" (тому что ADO выдает), ну или будут двойные (см. ранние предположение что инфа есть, но в ADO она не передается), если же расширенных дубликатов не найдется... ну значит подробные ошибки целиком заслуга Одака.
все просто.


 
ANB ©   (2006-11-16 14:41) [38]


> ~"ora-00900 invalid SQL statement"

Это означает, что запрос вообще нельзя распарсить, т.к. лишние символы. Если, например, в запросе неправильная таблица, он сообщит код ошибки и координаты этой таблицы в запросе. Это АДО его выгребать не умеет. Выкинь его нафиг и поставь нормальные компоненты доступа.


 
Игорь Шевченко ©   (2006-11-16 14:46) [39]

ANB ©   (16.11.06 14:41) [38]

Нормальные компоненты доступа стоят денег.


 
ANB ©   (2006-11-16 14:54) [40]


> Нормальные компоненты доступа стоят денег.

1. Полный одак с исходниками стоит 9000 рублей, причем на всю контору.
2. Если домой - то нафига за них вообще платить ?
3. Если жалко денег - народ пишет сам доступ через OCI и не мучается. Бесплатных примеров накопать и сделать свое.


 
Игорь Шевченко ©   (2006-11-16 15:03) [41]

ANB ©   (16.11.06 14:54) [40]


> 1. Полный одак с исходниками стоит 9000 рублей, причем на
> всю контору.


Странно. Я слышал о $1300 за site-license


> Если жалко денег - народ пишет сам доступ через OCI и не
> мучается. Бесплатных примеров накопать и сделать свое


Если не трудно, будь добр, не рассказывай сказки на предмет "не мучается", ладно ? Дело в том, что мы как раз и пользуемся самописными компонентами.


 
sniknik ©   (2006-11-16 15:05) [42]

> Выкинь его нафиг и поставь нормальные компоненты доступа.
мне проще выкинуть oracl, и оправданее надо сказать, если он скрывает полезную инфу, если ее надо откудато "выгребать", хотя большинство опробованных sql серверов ее сами радостно отдают... по общим принципам.

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


 
Reindeer Moss Eater ©   (2006-11-16 15:14) [43]

А причем здесь вообще адо?
Это же косяк конкретного оледб провайдера


 
sniknik ©   (2006-11-16 15:23) [44]

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

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


 
sniknik ©   (2006-11-16 15:27) [45]

[44] +
потом насколько помню, OLEDB провайдеров обычно два, один от мелкософта и один с клиентом оракла ставится, и опять насколько помню (я с ним не работал, так сталкивался пару раз, давно) информативность ошибок от смены провайдера не меняется (но это и очевидно, т.к. провайдер может только свои ошибки расписать, типа нет доступа, и т.д. но не серверные).


 
ANB ©   (2006-11-16 15:48) [46]


> sniknik ©   (16.11.06 15:27) [45]

Это адо кривой, под мс скл заточенный. Мне, например, удобно, что тоад позволяет мне и запрос отформатировать, и сразу с параметрами его отладить и курсор ставит на место ошибки.
ИМХО - кстати, считаю, что прежде чем запихать запрос в делфи его сначала надо вылизать в тоаде. Иначе время отладки значительно увеличивается и вероятность проскакивания ошибки повышается.


 
Игорь Шевченко ©   (2006-11-16 15:54) [47]

ANB ©   (16.11.06 15:48) [46]

TOAD маст дай. Он код процедур в десятке не смотрит.


 
sniknik ©   (2006-11-16 16:01) [48]

ANB ©   (16.11.06 15:48) [46]
а ты случаем не путаешь технологию доступа и конкретно программу?

p.s. жаба есть и под mssql, с теми же возможностями, работает через ADO/OLEDB.


 
ANB ©   (2006-11-16 16:22) [49]


> p.s. жаба есть и под mssql, с теми же возможностями, работает
> через ADO/OLEDB

И курсор на место ошибки ставит ?


 
ANB ©   (2006-11-16 16:23) [50]


> TOAD маст дай. Он код процедур в десятке не смотрит.

Когда в девелопер параметры добавят - я на него окончательно перейду


 
ANB ©   (2006-11-16 16:28) [51]


> TOAD маст дай. Он код процедур в десятке не смотрит.

А у меня без проблем загружает :) Вы просто не умеете его готовить :)


 
Игорь Шевченко ©   (2006-11-16 16:33) [52]

ANB ©   (16.11.06 16:28) [51

Ну так поделился бы. Или жабой или секретом :)


 
ANB ©   (2006-11-16 16:42) [53]


> Игорь Шевченко ©   (16.11.06 16:33) [52]

9-го клиента поставь и коннектся к 10-ке. И все пучком :)
жаба 8-я


 
sniknik ©   (2006-11-16 16:47) [54]

> И курсор на место ошибки ставит ?
точно не знаю, не пользуюсь, я свое написал (для освоения ADO надо было чтото делать, не сразу же за рабочий проект браться, не так наворочено но мне хватает) просто когда у нас были волонтеры от оракла еще в первый раз (8-ка), пришлось поставить попробовать... ничего похожего на Enterprise Manager в нем не было, пришлось искать стороннее, нашел жабу, потыкался с ней, почитал, после даже комуто советовал/ставил, а вариант для mssql просто по ходу узнал, ну видел, но зачем он если стандартного/своего за глаза, даже не пробовал...

но наверняка, есть, т.к. (с чего начали) у него эту инфу не надо "выковыривать" она и так есть (т.е. сделать даже проще), если нужны более подробные сведения по обьектам, то есть DMO (и по моему он в требования к жабе входит).
т.что если они из "спрятанного" достали и показывают, то уж открытое показать всяко способны, зажимать ведь вряд ли будут (если только не диверсанты против mssql ;).


 
Игорь Шевченко ©   (2006-11-16 16:56) [55]

ANB ©   (16.11.06 16:42) [53]


> 9-го клиента поставь и коннектся к 10-ке


АГАЩАЗБЛИН. Мне проще без TOAD жить, который маст дай.


 
ANB ©   (2006-11-16 17:16) [56]


> sniknik ©   (16.11.06 16:47) [54]

И у тебя определяет место ошибки ? И запрос форматает ?

А на ms sql можно будет начинать смотреть когда они :
- реализуют работу с парентовыми деревьями
- сделают нормальные генераторы ID
- сделают из птичьего т-скл нормальный язык
- реализуют понятия пакетов
- реализую работу с исключениями вместо этой дебильной концепции серьезности ошибки
эт так, навскидку.


 
Игорь Шевченко ©   (2006-11-16 17:32) [57]

На ms sql можно будет смотреть когда он станет нормальным версионником :)


 
sniknik ©   (2006-11-16 17:41) [58]

> И у тебя определяет место ошибки ? И запрос форматает ?
нет конечно, у меня все проще, ручками, и даже подсветки нет (чужими компонентами не пользуюсь, свой такой писать надобности нет, но если по работе придется то и туда вставлю...)
ошибки хватает стандартной (в основном с mssql, access а они у них понятные, ч указанием что и где... т.е. тоже нужды не было это делать)

> А на ms sql можно будет начинать смотреть когда они :
> ....
> эт так, навскидку.
да ладно не стесняйся, продолжай, -> когда они из mssql oracle сделают... полную копию, а мы после чтонибудь другое обличающее придумаем... чтобы так и не начинать смотреть.
это же любовь, что я не понимаю, чтоли. ;)


 
Val ©   (2006-11-16 18:08) [59]

>sniknik ©   (16.11.06 17:41)
[56] ANB ©   (16.11.06 17:16) несколько загнул конечно, но, зная вашу нелюбовь к ораклу, как минимум это "..чтобы так и не начинать смотреть." возвращается к вам бумерангом ;)
"они просто разные.." (с)


 
Кщд ©   (2006-11-17 08:32) [60]


> - реализуют работу с парентовыми деревьями
> - сделают нормальные генераторы ID
> - сделают из птичьего т-скл нормальный язык
> - реализуют понятия пакетов

- connect by - ресурсоемко. на мой взгляд, очередная "пятая" нога в маркетинговых целях. актуально для небольших древовидных структур, но совершенно неприемлимо для миллионников.
- ничего плохого в identity нет. по большей части - это тема для холивора. к тому же есть newID()
- подробности?
- пакеты действительно удобны для группировки, но обходится системой префиксов в именах


 
Александр Иванов ©   (2006-11-17 09:03) [61]

> - реализуют работу с парентовыми деревьями

Они это сделали, в МСДН есть примеры

> - сделают из птичьего т-скл нормальный язык

Они уже нормальный язык прикрутили. Если верить sql.ru то скорость в 1,5 выше для сложных обработок строк и прочего  строк чем Т-СКЛ

> - реализуют понятия пакетов

Нафига? Тогда разработчики 1С будут требовать в Дельфи документы реализовать и прочее.

> - сделают нормальные генераторы ID

Мне с ними работать очень удобно. Дело привычки.


 
Val ©   (2006-11-17 11:17) [62]

не, не, коллеги, пакеты штуковина крайне полезная - вы же врядли предлагали бы заменить паскалевские модули префиксной системой, мне кажется?


 
Игорь Шевченко ©   (2006-11-17 11:51) [63]

Это религия



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

Форум: "Базы";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.61 MB
Время: 0.058 c
3-1164006209
dzhserv
2006-11-20 10:03
2007.02.11
SQL запрос


15-1169375293
syte_ser78
2007-01-21 13:28
2007.02.11
как распаковать tar.qz ?


2-1169312672
NikNet
2007-01-20 20:04
2007.02.11
Как предварительно назначить именна DBGrid колонкам


1-1166165472
DelphiLexx
2006-12-15 09:51
2007.02.11
Как в DBGridEh объединить несколько колонок в одну


15-1168916009
Юнит
2007-01-16 05:53
2007.02.11
Как прописать {$DEFINE UseBox}, чтобы она была видна во всех юнит





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский