powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++ Builder & Oracle
19 сообщений из 19, страница 1 из 1
C++ Builder & Oracle
    #33942448
misternew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу запрос в TQuery.В запросе завожу переменную :Test.В параметрах TQuery ее определяю, как строку. При попытке выполенения программы пишет, что операция невыполнима. В чем проблема?

Запрос:
Select * from bbb
where aaa = :test

Если же вместо ааа подставляю стороковое значение,т.е. aaa = 'строка', то все работает.Что не так, не пойму...
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33942489
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код в студию!
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33942552
misternew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftкод в студию!

Код в TQuery:

select l.*, b.FXMM AS FXMMIPB, b.FX AS FXIPB, b.MM AS MMIPB
from v_tr_dict_party p,
V_TR_LIMIT_CAT_IPBM_NEW l,
V_TR_LIMIT_CAT_TO_BANK b
where p.ID = l.Party_ID
AND l.Entry_Date = (Select max(Entry_Date) from V_TR_LIMIT_CAT_IPBM_NEW where PArty_ID = l.Party_ID)
AND p.Party_Name = :test
AND p.ID = b.Party_ID
ORDER BY p.party

Переменная :test.
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33943232
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да не SQL, а C++ код в студию!
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33943430
misternew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftда не SQL, а C++ код в студию!

А причем здесь С++?
Есть запрос в SQL, который описан выше...
Там есть переменная :test, которая описывается именно билдером, а не sql.Соответственно эта переменная попадает в свойство TQuery, которое называется parameters.Там я эту переменную и описываю, что она строчная, присваиваю ей значение и тд....До того, чтобы зделать это программно,я еще не дошел, да и смысл, если это и так не работает...
Причем протестировал подстановку переменной на Sybase, все работает, а вот на Oracle не пашет...
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33943499
Тынц.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
misternew miksoftда не SQL, а C++ код в студию!

А причем здесь С++?
Есть запрос в SQL, который описан выше...
Там есть переменная :test, которая описывается именно билдером, а не sql.Соответственно эта переменная попадает в свойство TQuery, которое называется parameters.Там я эту переменную и описываю, что она строчная, присваиваю ей значение и тд....До того, чтобы зделать это программно,я еще не дошел, да и смысл, если это и так не работает...
Причем протестировал подстановку переменной на Sybase, все работает, а вот на Oracle не пашет...
1.
Выкинь BDE и возьми ODAC (или DOA). Эти либы поддерживают много Оракловых полезностей и работают с ним на порядки лучше БиДиЁв.

2.
Query->ParamByName('test')->AsString:=YourTestStringValue;
Query->Open ...
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33943601
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
misternewА причем здесь С++?а вот Тынц уже ответил: Тынц.Query->ParamByName('test')->AsString:=YourTestStringValue;только, если мне память не изменяет, надо писать с двоеточием, т.е. ':test', но тут я не уверен
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33943625
Тынц.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft misternewА причем здесь С++?а вот Тынц уже ответил: Тынц.Query->ParamByName('test')->AsString:=YourTestStringValue;только, если мне память не изменяет, надо писать с двоеточием, т.е. ':test', но тут я не уверен
не, не надо, оно ж ParamBy Name
и BDE тож не надо
правильно будет
OraQuery->ParamByName('test')->AsString:=YourTestStringValue;
OraQuery->Open();
;)
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33943721
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тынц.AsString:=YourЭто что за пассалевские двоеточия !?!?!?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33944368
Тынц.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Карабас Барабас Тынц.AsString:=YourЭто что за пассалевские двоеточия !?!?!?
Posted via ActualForum NNTP Server 1.3
Да.... тлетворное влияние... (
Хорошо хоть не через точку написал.
Вот проект до ума доведу и ну её в болото ))
Обещаю исправиться...
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33945950
misternew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тынц. miksoft misternewА причем здесь С++?а вот Тынц уже ответил: Тынц.Query->ParamByName('test')->AsString:=YourTestStringValue;только, если мне память не изменяет, надо писать с двоеточием, т.е. ':test', но тут я не уверен
не, не надо, оно ж ParamBy Name
и BDE тож не надо
правильно будет
OraQuery->ParamByName('test')->AsString:=YourTestStringValue;
OraQuery->Open();
;)

То, что здесь описано - это тоже самое, что указать в свойстве 'Params' компонента TQuery значение параметра test.Только здесь это программно, а там ручками....
Так вот, как я описывал выше, это не работает для Oraсle(почему-то :)), для Sybase работает...Может BDE, не знаю...
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33946172
misternew Тынц. miksoft misternewА причем здесь С++?а вот Тынц уже ответил: Тынц.Query->ParamByName('test')->AsString:=YourTestStringValue;только, если мне память не изменяет, надо писать с двоеточием, т.е. ':test', но тут я не уверен
не, не надо, оно ж ParamBy Name
и BDE тож не надо
правильно будет
OraQuery->ParamByName('test')->AsString:=YourTestStringValue;
OraQuery->Open();
;)

То, что здесь описано - это тоже самое, что указать в свойстве 'Params' компонента TQuery значение параметра test.Только здесь это программно, а там ручками....
Так вот, как я описывал выше, это не работает для Oraсle(почему-то :)), для Sybase работает...Может BDE, не знаю...
Я так понимаю, что причина кроется в отсутствии кавычек (открывающей ' и закрывающей '). Они - есть обязательный элемент передаваемых данных. Либо надо использовать нативную оракловую функцию приведения к строковому виду (TO_CHAR(...))
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33946180
Станислав СЯ так понимаю, что причина кроется в отсутствии кавычек (открывающей ' и закрывающей '). Они - есть обязательный элемент передаваемых данных. Либо надо использовать нативную оракловую функцию приведения к строковому виду (TO_CHAR(...))
То есть, например, ты сейчас передаешь:
Код: plaintext
1.
test='bla-bla-bla';
а должно быть:
Код: plaintext
1.
test='\'bla-bla-bla\'';
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33946245
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав С
СС> а должно быть:

СС> test='\'bla-bla-bla\'';
с каких таких пор с С/С++ строки в одинарные кавычки заключаться стали ?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33946405
Карабас Барабас Станислав С
СС> а должно быть:

СС> test='\'bla-bla-bla\'';
с каких таких пор с С/С++ строки в одинарные кавычки заключаться стали ?
Posted via ActualForum NNTP Server 1.3
Имейте снисхождение...
Человек первый день на работе после месячного отпуска...
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33948731
misternew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав СЯ так понимаю, что причина кроется в отсутствии кавычек (открывающей ' и закрывающей '). Они - есть обязательный элемент передаваемых данных. Либо надо использовать нативную оракловую функцию приведения к строковому виду (TO_CHAR(...))

Мысль интересная, но ни с кавычками, ни с TO_CHAR не работает почему-то... :(...Не понимаю в чем глюк....
Обошел это следующим образом, передавая в текст запроса строку,в которую предварительно в нужное место было вставлено необходимое значение, но если запрос будет не маленьким, тогда что?.....
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33948764
misternew Станислав СЯ так понимаю, что причина кроется в отсутствии кавычек (открывающей ' и закрывающей '). Они - есть обязательный элемент передаваемых данных. Либо надо использовать нативную оракловую функцию приведения к строковому виду (TO_CHAR(...))

Мысль интересная, но ни с кавычками, ни с TO_CHAR не работает почему-то... :(...Не понимаю в чем глюк....
Обошел это следующим образом, передавая в текст запроса строку,в которую предварительно в нужное место было вставлено необходимое значение, но если запрос будет не маленьким, тогда что?.....
Насколько "немаленьким"? Oracle легко "переваривает" тексты запросов длиной до 8 кБ
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33948856
misternew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну это понятно, просто не хочется ходить вокруг да около, тем более, если есть стандартный интерфейс и параметры....Для Sybase работает, ORacle не хочет, я бы понял, если б совсем не работало, а тут не пойму в чем дело...
...
Рейтинг: 0 / 0
C++ Builder & Oracle
    #33948945
Тынц.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
misternewНу это понятно, просто не хочется ходить вокруг да около, тем более, если есть стандартный интерфейс и параметры....Для Sybase работает, ORacle не хочет, я бы понял, если б совсем не работало, а тут не пойму в чем дело...
Посмотри в FAQ в ветке Oracle, как включить трассировку сессии и посмотри текст, который передаётся серверу на обработку. Либо ты что-то не так делаешь, либо его портит BDE.
Выложи код, как именно работаешь с запросом.

А лучше возьми, всё-таки ODAC или DOA.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++ Builder & Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]