|
динамическое создание SQL-запроса
|
|||
---|---|---|---|
#18+
DS = TADODataSet.Create(); ... DS.ParamCheck := true; DS.CommandText := 'select * from Table1 where PTR > :PTR'; получаем параметр "PTR" с DataType = ftUnknown когда то же самое делать в дизайн-тайме через ObjectInspector то параметр создается с правильным типом DataType = ftInteger может кто уже делал подобное? по сырцам делфовским искал в чем разница - так и не нашел концов ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2002, 11:59 |
|
динамическое создание SQL-запроса
|
|||
---|---|---|---|
#18+
Я никогда не использую параметры. Раньше пробовал и случались аналогичные проблемы. Если уж можно написать: DS.CommandText := 'select * from Table1 where PTR > :PTR'; то можно и продолжить DS.CommandText := 'select * from Table1 where PTR > '+IntTostr(integerVarRTR); Все под контролем и никаких проблем. Для строковых параметров рекомендую DS.CommandText := 'select * from Table1 where PTR > '+AnsiQuotedStr(stringVarRTR,'''') Для дат-времени var DateParam : string; ... DateTimeToString(DateParam, 'yyyymmdd hh:nn', DateTimeVarRTR); DS.CommandText := 'select * from Table1 where PTR > '+AnsiQuotedStr(DateParam,'''') ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2002, 16:01 |
|
динамическое создание SQL-запроса
|
|||
---|---|---|---|
#18+
Тип параметру надо задавать явно. Компилятор откуда может знать, что ты подразумеваешь под параметром :PTR? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2002, 07:08 |
|
динамическое создание SQL-запроса
|
|||
---|---|---|---|
#18+
При чем здесь компилятор? Все происходит в рантайме. И самое интересное. В одном месте с включенным ParamCheck=true после присвоения строки ADODataSet1.CommandText:='select * from Table1 where PTR> :PTR' прога распознала параметр как ftInteger, а в другом месте (в другой процедуре той же формы) возвратила ftUnknown после абсолютно тех же действий. Насчет "не знает компилятор". ADODataSet видимо определяет параметр обращаясь непосредственно к серверу через оле-дб-провайдера. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2002, 07:20 |
|
динамическое создание SQL-запроса
|
|||
---|---|---|---|
#18+
Это не самое интересное. Такова особенность АДО. Нужно перед присваиванием параметру значения задать ему тип. (Datatype :=то чё нужно). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2002, 12:21 |
|
|
start [/forum/topic.php?fid=58&msg=32028960&tid=2120006]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 139ms |
0 / 0 |