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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.035 c
4-1090415837
Кириешки
2004-07-21 17:17
2004.09.05
Как дождаться пока функция вызываемая из Dll отработает?


4-1090575633
webpauk
2004-07-23 13:40
2004.09.05
TStrings


1-1092907415
Maxim____
2004-08-19 13:23
2004.09.05
массив объектов


1-1092748079
Brain Force
2004-08-17 17:07
2004.09.05
Альтернатива DriveComboBox + DirectoryListBox


3-1091193331
Alex_2004
2004-07-30 17:15
2004.09.05
Активные сервера MS SQL





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