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

Вниз

SELECT DISTINCT :myParameter FROM ... можно ли так?   Найти похожие ветки 

 
Alex7 ©   (2007-08-11 08:52) [0]

Здравствуйте, уважаемые мастера.
Возможно ли задать в строке запроса имя поля как параметр,
SELECT DISTINCT :myParameter FROM ...
если можно, то какого типа он должен быть. Пробовал задавать Olestr - пишет : ошибка во время выполнения многошаговой операции OLE DB. (Использую MS ACCESS)
Заранее благодарен.


 
Savek   (2007-08-11 09:18) [1]

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

SQL.Text:="select distinct "+FieldName+" from ..."


 
Alex7 ©   (2007-08-11 09:53) [2]

В запросе много параметров разного типа (в условиях отбора).
Динамическое изменения текста запроса разрушает статически созданные свойства параметров. Необходимо каждый раз формировать эти свойства заново. Это большой кусок кода. Есть ли какой-нибудь другой способ?
Не знаю, можно ли унаследовать эти свойства от чего-нибудь, после того, как текст запроса динамически изменился?


 
Lacmus ©   (2007-08-11 10:28) [3]

>Alex7 ©

Используется TADOQuery ?
Какое значение у ParamCheck ?


 
Alex7 ©   (2007-08-11 10:46) [4]

>Lacmus ©
Использую TADOQuery,
ParamCheck = TRUE
оно автоматически становится TRUE  при статическом задании текста запроса, т.к. в тексте есть параметры.


 
Lacmus ©   (2007-08-11 11:08) [5]

>Alex7 ©   (11.08.07 10:46) [4]

При присвоении параметры не меняются


procedure TForm30.Button3Click(Sender: TObject);
var
 i: Integer;
begin
 ADOQuery1.SQL.Text := "...";
 for i := 0 to ADOQuery1.Parameters.Count - 1 do
   ShowMessage(VarToStr(ADOQuery1.Parameters[i].Value))
end;


Но если они все таки меняются, можно их скопировать до изменения запроса и восстановить после.


 
Alex7 ©   (2007-08-11 11:31) [6]

Текст запроса динамически меняю так:
MyQuery.Close;
MyQuery.SQL[0] := "SELECT DISTINCT MyField";
MyQuery.Open;
Дальнейший текст запроса вместе с участием параметров - статичен.
В DisignTime, после замены текста в MyQuery.SQL[0] заданные свойства параметров - рушатся. Может это один из глюков Дельфи 2005?


 
Lacmus ©   (2007-08-11 11:42) [7]

>заданные свойства параметров - рушатся

Какие именно свойства рушатся ?


 
Alex7 ©   (2007-08-11 11:58) [8]

Рушатся прямо DisignTime. Вижу это в инспекторе объектов  (свойства: DataType, Size, Value.Size).


 
Lacmus ©   (2007-08-11 12:12) [9]

>Alex7 ©   (11.08.07 11:58) [8]

См. adodb.pas


procedure TADOCommand.AssignCommandText(const Value: WideString; Loading: Boolean);



Изменение этих параметров происходит там


 
Desdechado ©   (2007-08-11 18:29) [10]


> MyQuery.SQL[0] := "SELECT DISTINCT MyField";MyQuery.Open;
> Дальнейший текст запроса вместе с участием параметров - статичен.

Что мешает поставить вместо поля звездочку?
Тогда из выбранных данных можно обраиться только к нужному полю.


 
Anatoly Podgoretsky ©   (2007-08-11 18:40) [11]


> Динамическое изменения текста запроса разрушает статически
> созданные свойства параметров.

Динамическое создания текста запроса требует применения динамических параметров. Раз ты создаешь текст запроса динамически, то ты знаешь какие параметры создаешь. В этом случае ничего не рушится, если конечно включена проверка параметров или вызывается вручную их создание.



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

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

Наверх




Память: 0.47 MB
Время: 0.047 c
15-1186039377
VirEx
2007-08-02 11:22
2007.09.02
С днем рождения 29 июля!


2-1186506722
viktoras
2007-08-07 21:12
2007.09.02
Создание меню


8-1164005910
sawa
2006-11-20 09:58
2007.09.02
Преобразование mp3 в wma


15-1185883532
AntifreezeeR
2007-07-31 16:05
2007.09.02
Ищу помощи, как новичок.


15-1186415763
SkySpeed
2007-08-06 19:56
2007.09.02
Какую посоветуете программу для восстановления удалённых файлов?





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