Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

ADO?   Найти похожие ветки 

 
CRACKISH   (2004-08-17 10:45) [0]

Люди вот у при попытки подключения к серверу, ADOConnection, выдает такую ошибку: <a>http://mail.yandex.ru/img/%C1%E5%E7%FB%EC%FF%ED%ED%FB%E9.jpg?hid=880000000004107128&bid=880000000004107128&mesid=7700 00000011121840!</a> Что делать?


 
CRACKISH   (2004-08-17 10:45) [1]

http://mail.yandex.ru/img/%C1%E5%E7%FB%EC%FF%ED%ED%FB%E9.jpg?hid=880000000004107128&bid=880000000004107128&mesid=7700000 00011121840


 
stone ©   (2004-08-17 10:47) [2]

по этой ссылке ничего не открывается


 
CRACKISH   (2004-08-17 10:51) [3]

"The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value."


 
Ega23 ©   (2004-08-17 10:53) [4]

Что-делать, что-делать...
Char в DateTime правильно кастовать, вот что делать...


 
Рамиль ©   (2004-08-17 10:54) [5]

ну ты дал ссылку :o) Это ж почтовый ящик, как оттуда что нибудь может открыться?


 
CRACKISH   (2004-08-17 10:56) [6]


> Char в DateTime правильно кастовать, вот что делать...


Спасибо! Но где это находится? :-)


 
stone ©   (2004-08-17 11:11) [7]


> CRACKISH

покажи как конвертируешь


 
Ega23 ©   (2004-08-17 11:18) [8]

stone ©   (17.08.04 11:11) [7]

Я так подозреваю, что это при коннекшене происходит.


 
CRACKISH   (2004-08-17 11:22) [9]

В смысле конвертируешь! (Извените я новенький в этом деле!)
Я просто выставил все параметры подключения, и пишу ADOConnection1.Open !
У меня на компе все ok! но на работе выдает это сообщение!


 
stone ©   (2004-08-17 11:43) [10]

ТЕЛЕПАТЫ В ОТПУСКЕ

> Я просто выставил все параметры подключения, и пишу ADOConnection1.Open
> !
> У меня на компе все ok! но на работе выдает это сообщение!

Покажи параметры подключения

> The conversion of a char data type to a datetime data type
> resulted in an out-of-range datetime value.

При выполнении чего возникает ошибка?


 
CRACKISH   (2004-08-17 11:53) [11]


> Покажи параметры подключения


Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=R_TAXI;Data Source=S_NT


> При выполнении чего возникает ошибка?


При подключении! (ADOConnection1.Open)


 
stone ©   (2004-08-17 12:00) [12]


> При подключении! (ADOConnection1.Open)

Сомневаюсь. Вероятнее всего в дизайн-тайм свойство Active у каких-либо датасетов установлено в True, и при их открытии возникает ошибка.


 
ZrenBy ©   (2004-08-17 12:06) [13]

Ага, и на другой машине формат дат другой

set dateformat mdy
select cast("12.22.2000" as datetime)
select cast("20001222"   as datetime)

set dateformat dmy
select cast("12.22.2000" as datetime)
select cast("20001222"   as datetime)


 
CRACKISH   (2004-08-17 12:18) [14]

Проверил! прога коннекится нормально, ошибка вылазит при выполнения запроса:

Query.SQL.Clear;
Query.SQL.Add("select Sum(NumberOfOrders) from _ExecutedOrders");
Query.SQL.Add("where (ClientGetOut between """+DateToStr(S_Date.date)+" "+TimeToStr(S_time.Time)+""" and """+DateToStr(Po_Date.date)+" "+TimeToStr(Po_time.Time)+""") and (TypeFailID is null) and (TravelTypeID in (1,2,20,22))");
Query.Open;

S_time, Po_time, S_Date, Po_Date - TDateTimePicker
Посмотрел в bde administatoe (дома) в закладке formats>date>seperator стоит / , а на работе точка!

А не поможет мне Separator:="." в оброботчике Oncreate ?


 
Ega23 ©   (2004-08-17 12:23) [15]

Посмотрел в bde administatoe (дома) в закладке formats>date>seperator стоит / , а на работе точка!

1. Где связь между bde administator и ADO?
2. Покажи весь текст перед Open (Query.Sql.Text)


 
CRACKISH   (2004-08-17 12:24) [16]

Это и есть весь текст!


 
stone ©   (2004-08-17 12:25) [17]


> """+DateToStr(Po_Date.date)+" "+TimeToStr(Po_time.Time)+"""

Тут ошибка. Формат даты в MSSQL не соответствует вомату даты на компьютере. В таких случая лучше использовать параметры. Можно также добавить set dateformat (нужный формат) в запрос


 
CRACKISH   (2004-08-17 12:27) [18]

ADOConnection.Open;

Query.SQL.Clear;
Query.SQL.Add("select Sum(NumberOfOrders) from _ExecutedOrders");
Query.SQL.Add("where (ClientGetOut between """+DateToStr(S_Date.date)+" "+TimeToStr(S_time.Time)+""" and """+DateToStr(Po_Date.date)+" "+TimeToStr(Po_time.Time)+""") and (TypeFailID is null) and (TravelTypeID in (1,2,20,22))");
Query.Open;


 
CRACKISH   (2004-08-17 12:28) [19]


> Тут ошибка. Формат даты в MSSQL не соответствует вомату
> даты на компьютере. В таких случая лучше использовать параметры.
> Можно также добавить set dateformat (нужный формат) в запрос


А в каких параметрах? а как в запросе?


 
Ega23 ©   (2004-08-17 12:28) [20]

Это и есть весь текст!

МНЕ НЕ НУЖЕН ТЕКСТ ТИПА ТАКОГО: where (ClientGetOut between """+DateToStr(S_Date.date)+" "+TimeToStr(S_time.Time)+""" and """+DateToStr(Po_Date.date)+" "+TimeToStr(Po_time.Time)+""") and (TypeFailID is null) and (TravelTypeID in (1,2,20,22))"

Я не собираюсь сидеть и разбираться в твоих апострофах, DateToStr"ах и прочьей галиматье. Покажи чему равно SQL.Text после всех ADD.


 
CRACKISH   (2004-08-17 12:38) [21]

Ни чему!


 
Ega23 ©   (2004-08-17 12:43) [22]

Тогда у тебя твоё "Ни чему!" пытается выполнится. Хотя, судя по эксепшену, это не так.


 
stone ©   (2004-08-17 12:45) [23]

Если ты недостаточно владеешь требуемым диалектом SQL и не знаешь тонкостей работы с данной СУБД, то такими конструкциями:

> Query.SQL.Clear;
> Query.SQL.Add

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

ЗЫ. Лекцию как писать запросы с параметрами читать не буду


 
CRACKISH   (2004-08-17 13:11) [24]

Проерил прогу с запросом без TDateTimePicker!
Все рабоатет!
Формат на сервере SQL:
дата: yyyy-mm-dd
время: h:m:s.ms
формат в TDateTimePicker:
дата: dd.mm.yyyy
время: h:m:s

Как перебразовать формат TDateTimePicker в формат SQL?
Спасибо!


 
Ega23 ©   (2004-08-17 13:29) [25]

Чему равно DateToStr(S_Date.date)+" "+TimeToStr(S_time.Time)?


 
Skyle ©   (2004-08-17 13:37) [26]


> Как перебразовать формат TDateTimePicker в формат SQL?

FormatDateTime?


 
CRACKISH   (2004-08-17 13:40) [27]


> Чему равно DateToStr(S_Date.date)+" "+TimeToStr(S_time.Time)?


17.08.2004 12:40:00


> FormatDateTime?


Пробывал но чтото он не пашет!


 
Skyle ©   (2004-08-17 13:42) [28]


> Пробывал но чтото он не пашет!

А как пробовал?


 
CRACKISH   (2004-08-17 13:43) [29]

Я хочу чтоб при вводе формат TDateTimePicker оставался прежним, а уже в запросе был формат SQL!


 
CRACKISH   (2004-08-17 13:45) [30]


> А как пробовал?


S_Time.Format:="H:m:s.ms";
S_Time.Format:="H:m:s.ms";
S_Date.Format:="yyyy-MM-dd";
Po_Date.Format:="yyyy-MM-dd";

Всеравно выдает формат прежний!


 
Skyle ©   (2004-08-17 13:46) [31]


>  [30] CRACKISH   (17.08.04 13:45)

А это всё нафига?
FormatDateTime можно использовать вместо DateToStr(...) + TimeToStr(...)


 
CRACKISH   (2004-08-17 13:52) [32]


> FormatDateTime можно использовать вместо DateToStr(...)
> + TimeToStr(...)


А как?


 
Skyle ©   (2004-08-17 13:56) [33]

DateToStr(s_Date.date) + " " + TimeToStr(s_Time.Time)
меняем на
FormatDateTime(Нужный формат даты/времени, S_Date.Date + S_Time.Time)

например так.


 
CRACKISH   (2004-08-17 14:11) [34]

Огромное всем спасибо!


 
CRACKISH   (2004-08-17 15:17) [35]

Вот появились еще проблемы:
При выполнении одного запроса:

Query.SQL.Clear;
Query.SQL.Add("select Sum(NumberOfOrders) from _ExecutedOrders");
Query.SQL.Add("where (ClientGetOut between """+FormatDateTime("yyyy-MM-dd", S_Date.Date)+" "+FormatDateTime("H:m:s", S_time.Time)+".000"" and """+FormatDateTime("yyyy-MM-dd", Po_Date.Date)+" "+FormatDateTime("H:m:s", Po_time.Time)+".000"") and (TypeFailID is null) and (TravelTypeID in (3,6,10,13,16,21,23))");
Query.Open;


Все нормально, но если дальше написать второй:
Query.SQL.Clear;
Query.SQL.Add("select Sum(NumberOfOrders) from _ExecutedOrders");
Query.SQL.Add("where (ClientGetOut between """+FormatDateTime("yyyy-MM-dd", S_Date.Date)+" "+FormatDateTime("H:m:s", S_time.Time)+".000"" and """+FormatDateTime("yyyy-MM-dd", Po_Date.Date)+" "+FormatDateTime("H:m:s", Po_time.Time)+".000"") and (TypeFailID is null) and (TravelTypeID in (1,2,20,22))");
Query.Open;


То обратно выдает туже ошибку!


 
Ega23 ©   (2004-08-17 16:13) [36]

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


 
CRACKISH   (2004-08-17 16:29) [37]

select Sum(NumberOfOrders) from _ExecutedOrders
where (ClientGetOut between "2004-08-16 0:0:0.000" and ""2004-08-17 0:0:0.000") and (TypeFailID is null) and (TravelTypeID in (1,2,20,22))


Этот чтоли?


 
Ega23 ©   (2004-08-17 16:31) [38]

Этот чтоли?

О! Наконец-то!

and ""2004-08-17 0:0:0.000")

апостроф лишний


 
CRACKISH   (2004-08-17 16:41) [39]

то помарка! :-)


 
Ega23 ©   (2004-08-17 16:49) [40]

Ок, помарка, так помарка. Запрос в QA идёт?


 
CRACKISH   (2004-08-17 16:50) [41]

Если один такой запрос отослать то все ок! а если сразу же второй то пишет туже ошибку!

Может както по другому отчищать ADOQuery?


 
Ega23 ©   (2004-08-17 16:52) [42]

Так ты сразу 2 запроса за один Open пытаешься послать?


 
CRACKISH   (2004-08-17 16:53) [43]

вот так:

Query.SQL.Clear;
Query.SQL.Add("select Sum(NumberOfOrders) from _ExecutedOrders");
Query.SQL.Add("where (ClientGetOut between """+FormatDateTime("yyyy-MM-dd", S_Date.Date)+" "+FormatDateTime("H:m:s", S_time.Time)+".000"" and """+FormatDateTime("yyyy-MM-dd", Po_Date.Date)+" "+FormatDateTime("H:m:s", Po_time.Time)+".000"") and (TypeFailID is null) and (TravelTypeID in (3,6,10,13,16,21,23))");
Query.Open;

Query.SQL.Clear;
Query.SQL.Add("select Sum(NumberOfOrders) from _ExecutedOrders");
Query.SQL.Add("where (ClientGetOut between """+FormatDateTime("yyyy-MM-dd", S_Date.Date)+" "+FormatDateTime("H:m:s", S_time.Time)+".000"" and """+FormatDateTime("yyyy-MM-dd", Po_Date.Date)+" "+FormatDateTime("H:m:s", Po_time.Time)+".000"") and (TypeFailID is null) and (TravelTypeID in (1,2,20,22))");
Query.Open;


 
Ega23 ©   (2004-08-17 16:57) [44]

Давай ещё раз тексты ОБОИХ запросов перед открытием.


 
CRACKISH   (2004-08-17 17:02) [45]

select Sum(NumberOfOrders) from _ExecutedOrders
where (ClientGetOut between "2004-08-16 0:0:0.000" and "2004-08-17 0:0:0.000") and (TypeFailID is null) and (TravelTypeID in (3,6,10,13,16,21,23))

select Sum(NumberOfOrders) from _ExecutedOrders
where (ClientGetOut between "2004-08-16 0:0:0.000" and "2004-08-17 0:0:0.000") and (TypeFailID is null) and (TravelTypeID in (1,2,20,22))


 
Anatoly Podgoretsky ©   (2004-08-17 17:03) [46]

Все еще просишь :-)


 
Ega23 ©   (2004-08-17 17:06) [47]

Уверен, что ТАКАЯ же ошибка?


 
CRACKISH   (2004-08-17 17:24) [48]

Извените!
Вы правы ошибка другая (с работы только что сказали что другая):
"Access violation at adress 00492E78 in module "Zakazi.exe". Read of address 00000258"!
Я как понимаю надо както "перезапустить" ADOQuery после первого запроса!


 
Ega23 ©   (2004-08-17 17:29) [49]

Access violation at adress 00492E78 in module "Zakazi.exe".

Где-то ты, брат, к несуществующему классу обращаешься. Или в память как-то лезешь. Пройдись отладчиком по F7-F8 и найди строчку, где вылетает.

"перезапустить" ADOQuery

ADOQuery.Close


 
DiamondShark ©   (2004-08-17 17:32) [50]


> Ega23 ©   (17.08.04 17:06) [47]

Терпеливый ты...


 
Ega23 ©   (2004-08-17 17:34) [51]

Терпеливый ты...

Ничего, всего 25 минут осталось...


 
CRACKISH   (2004-08-17 17:37) [52]


> Где-то ты, брат, к несуществующему классу обращаешься. Или
> в память как-то лезешь. Пройдись отладчиком по F7-F8 и найди
> строчку, где вылетает.


У меня результат в переменную заганняется!


 
CRACKISH   (2004-08-17 17:38) [53]

переменная(string):=Query.Fields.Fields[0].Text;


 
Ega23 ©   (2004-08-17 17:42) [54]

А есть-ли маЛчик?

Чему равно Query.Fields.Fields[0].Text;?


 
CRACKISH   (2004-08-17 17:47) [55]


> Чему равно Query.Fields.Fields[0].Text;?


Числу! НА null проверка есть:
if not Query.Fields.Fields[0].IsNull then


 
alless   (2004-08-17 17:48) [56]

А может после первый Query1.Open надо Query1.Close и потом все остольное (я не проверил)


 
Ega23 ©   (2004-08-17 17:50) [57]

переменная(string):=Query.Fields.Fields[0].Text;

Там строка, а там число? Чего-то я тебя не понимаю...


 
Ega23 ©   (2004-08-17 17:50) [58]

А на IsEmpty есть проверка?


 
CRACKISH   (2004-08-17 17:53) [59]


> Там строка, а там число? Чего-то я тебя не понимаю...


Но число в stringe!


> А на IsEmpty есть проверка?


Нет но там и не может быть!


 
Ega23 ©   (2004-08-17 17:57) [60]

Нет но там и не может быть!

Не может быть ЧТО?
З.Ы. У тебя 2 минуты, потом - до завтра  :о)



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

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.03 c
1-1093087148
Гость...
2004-08-21 15:19
2004.09.05
Listbox


14-1092743459
Григорьев Антон
2004-08-17 15:50
2004.09.05
Delphi+БД. Какую книгу посоветуете?


1-1092728227
Makhanev A.S.
2004-08-17 11:37
2004.09.05
Dsable hints in Delphi IDE Code Editor


14-1091990751
Soft
2004-08-08 22:45
2004.09.05
И Ш К У Ш Ш Т В Е Н Н Ы Й И Н Т Е Л Л Е К Т


14-1092929811
Maker
2004-08-19 19:36
2004.09.05
Книга