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

Вниз

Вот опять Odac начинает глупости пороть.. ORA-00932   Найти похожие ветки 

 
OW ©   (2011-05-03 12:53) [0]

procedure ReOpenQByTwoDate(Q: TORAQuery; FD, SD: TDate); overload;
begin
 Q.Close;
 Q.ParamByName("DTF").Value := FD;
 Q.ParamByName("DTS").Value := SD;
 Q.Open;
 Q.First;
end;

..
ReOpenQByTwoDate(oq2, StartOfTheMonth(edtF.Date), edtS.Date);

//EOraError
//ORA-00932: inconsistent datatypes: expected DATE got NUMBER

В прошлый раз тоже самое
Казалось бы, ну где не понятно!?? - нет..
И что главное, ведь работало!
ровно 2 дня, пока не перекомпилил. А теперь пока .Value на .AsDate не заменил, так и не захотел работать.


 
OW ©   (2011-05-03 13:02) [1]

А ADO работает

procedure ReOpenQByTwoDate(Q: TADOQuery; FD, SD: TDate); overload;
begin
 Q.Close;
 Q.Parameters.ParamByName("DTF").Value := FD;
 Q.Parameters.ParamByName("DTS").Value := SD;
 Q.Open;
end;


 
Медвежонок Пятачок ©   (2011-05-03 13:05) [2]

Зачем работать через варианты, если есть типизированные AsString,AsDateTime и т.д.


 
OW ©   (2011-05-03 13:26) [3]

Удобнее..

Да просто ладно бы value := неизвестно_что_с_горы
так ведь и StartOfTheMonth типа TDateTime
и потом, когда входной параметр, тоже типа TDate
да и все равно, по-идее Tdate или Number - одно и тоже
а - нет. Не все равно..


 
sniknik ©   (2011-05-03 15:44) [4]

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

> когда входной параметр, тоже типа TDate
в ADO такого нет (эээ... да почти ни у кого, не помню ни одного провайдера) только TDateTime, и для даты и для времени монописуально.

p.s. понятно Odac не ADO но... что то общее возможно.


 
Игорь Шевченко ©   (2011-05-03 16:53) [5]


> //ORA-00932: inconsistent datatypes: expected DATE got NUMBER


ты хотел чего-то другого, присваивая число с плавающей точкой ?


> Удобнее..


Давить!


 
OW ©   (2011-05-03 17:56) [6]


> ты хотел чего-то другого, присваивая число с плавающей точкой
> ?

да, хотел как в процедуре с ADO
и потом, а как ты, не присваивая числа, задашь время?


 
Игорь Шевченко ©   (2011-05-03 19:14) [7]


> да, хотел как в процедуре с ADO


если ты хотел, как в процедре с ADO, почему ты не используешь ADO ?


> и потом, а как ты, не присваивая числа, задашь время?


Существует такое свойство у параметра, как AsDateTime.


>  Q.ParamByName("DTF").Value := FD;
>  Q.ParamByName("DTS").Value := SD;


Какие у тебя типы параметров ? ftUnknown небось ?


 
sniknik ©   (2011-05-03 19:15) [8]

> не присваивая числа, задашь время?
никак если "DATE got NUMBER", а "время got дробная часть числа".
поменяй тип в база на аналог "дататайма"/со временем/чисто время (если есть) и вот тогда пожалуйста.


 
OW ©   (2011-05-04 08:38) [9]


> Какие у тебя типы параметров ? ftUnknown небось ?

Date


> поменяй тип в база

исключено..


 
OW ©   (2011-05-04 09:21) [10]


> Существует такое свойство у параметра, как AsDateTime.


Игорь, читай внимательнее.

> пока .Value на .AsDate не заменил, так и не захотел работать.

т.е. у меня все равботает.

Вообще не знаю зачем спросил. Просто обсудить, наверное.

Просто после
адекватных реакций MSSQL и ADO  
сталкиваться со странностью
Oracle и его приближенных (хоть тут, хоть в случае с null||"qq" = "qq")
немного неприятно


 
sniknik ©   (2011-05-04 09:27) [11]

ну тогда "приводи" тип, не хочешь через asDateTime то дай в Value ожидаемое им целое число, т.е. вместо
.Value := SD;
сделать типа
iSD: integer;
...
iSD:= Trunc(SD);
.Value := iSD;


p.s. "удобство" "накроется"


 
sniknik ©   (2011-05-04 09:35) [12]

p.p.s. хотя нет, так делать нельзя!...
если передавать просто числом то оно в зависимости от "точки отсчета дат" в для разных субд будет давать разные значения дат после присвоения, при одном и том же числе в исходных... (сравнить к примеру access и mssql)
т.е. тогда будет неопределенность, которая при явном типе даты корректируется провайдером.
в общем, остается единственный вариант.


 
Кщд   (2011-05-04 09:42) [13]

>OW ©   (04.05.11 09:21) [10]


сталкиваться со странностью
Oracle и его приближенных (хоть тут, хоть в случае с null||"qq" = "qq")

это не "странности", а особенности реализации


 
Игорь Шевченко ©   (2011-05-04 10:33) [14]


> Игорь, читай внимательнее.
>
> > пока .Value на .AsDate не заменил, так и не захотел работать.
>


procedure TParam.SetAsDate(const Value: TDateTime);
begin
 FDataType := ftDate;
 Self.Value := Value;
end;

Ты уже понял свою ошибку ?


> Просто после
> адекватных реакций MSSQL и ADO  
> сталкиваться со странностью
> Oracle и его приближенных (хоть тут, хоть в случае с null||"qq"
> = "qq")
> немного неприятно


Иди в дворники, еще не поздно


 
OW ©   (2011-05-04 10:40) [15]


> procedure TParam.SetAsDate(const Value: TDateTime);
> begin
>  FDataType := ftDate;
>  Self.Value := Value;
> end;
>
> Ты уже понял свою ошибку ?



> > Какие у тебя типы параметров ? ftUnknown небось ?
> Date


http://zalil.ru/30975097


 
Игорь Шевченко ©   (2011-05-04 13:27) [16]

OW ©   (04.05.11 10:40) [15]

у тебя на картинке oq1 а в первом посте oq2

после этого ты хочешь, чтобы я тебе поверил ? ;)
Я тебе специально привел код TParam.SetAsDate, который отличается от твоего присваивания только тем, что принудительно устанавливает тип параметра, а потом делает точно такое же присвоение свойству Value

Работа на свежем воздухе всяко полезнее.


 
OW ©   (2011-05-04 17:37) [17]


> Игорь Шевченко ©   (04.05.11 13:27) [16]



> специально привел код TParam.SetAsDate, который отличается
> от твоего присваивания только тем, что принудительно устанавливает
> тип параметра

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


> у тебя на картинке oq1 а в первом посте oq2

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


 
OW ©   (2011-05-04 17:49) [18]

хотя.. может и не ставил..
не буду на 100% утверждать. Как доберусь до компа - проверю.
Напишу как было и попробую.


 
OW ©   (2011-05-05 10:50) [19]

ИШ прав
Не удалось воспроизвести.

скорее всего было так:
не поставил Date в одном из 2х параметров в oq2
потому что фотографической памятью помню - ставил. т.е. так - помню в один из параметров ткнул - стоит. А во втором случае не стал проверять.

Каюсь, грешен,
прицениваюсь к метле :)



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

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

Наверх





Память: 0.49 MB
Время: 0.045 c
2-1396356964
Дмитрий
2014-04-01 16:56
2015.09.10
0,1 is not a valid BCD value


2-1365077543
JohnKorsh
2013-04-04 16:12
2015.09.10
Иконка программы.


15-1413634226
demo
2014-10-18 16:10
2015.09.10
запись видео экрана


15-1410753233
oldman
2014-09-15 07:53
2015.09.10
Нужна помощь. Мне.


1-1331096953
ssmplec
2012-03-07 09:09
2015.09.10
Проблема с cxGrid RepositoryItem





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