Форум: "Начинающим";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
ВнизВложенные запросы. Нужен совет. Найти похожие ветки
← →
DimonS © (2006-07-24 10:00) [0]Решил попробовать сделать вложенный запрос, причем подзапрос обращается к этой же базе:
ADOGPS.Close;
ADOGPS.SQL.Clear;
ADOGPS.SQL.Add("select Distance as Dist from Distance_All where UniqID=1 and TimeNav");
ADOGPS.SQL.Add("=(select Max(Timenav) from Distance_all where Timenav<=:Dat2 and UniqID=1)");
ADOGPS.Parameters.ParamValues["Dat2"]:=DateTimeToStr(Now);
ADOGPS.Open;
В результате выдает ошибку:
"The conversion a chsr data type to a datetime data type resulted in an out-of-range datetime value"
Как я понял, вложенный подзапрос выдает не тот формат? По отдельности запросы работают нормально. Что здесь неправильно?
Или может быть проще сделать запрос через соединение таблиц?
← →
Ega23 © (2006-07-24 10:05) [1]А если Max не найдёт по такому условию?
← →
DimonS © (2006-07-24 10:08) [2]
> Ega23 © (24.07.06 10:05) [1]
Найдет в любом случае, если отдельным запросом делать, то находит, база не пустая и значения такие точно есть.
← →
Ega23 © (2006-07-24 10:35) [3]
> Найдет в любом случае, если отдельным запросом делать, то
> находит, база не пустая и значения такие точно есть.
Гарантии нет. Хотя тебе виднее. Но это потенциальная дыра, учти.
← →
Desdechado © (2006-07-24 10:36) [4]Ругается вот здесь:
ADOGPS.Parameters.ParamValues["Dat2"]:=DateTimeToStr(Now);
Какого лешего ты в строку преобразуешь? Передавай прямо.
Да и текст ошибки прозрачен - ошибка преобразования
← →
DimonS © (2006-07-24 10:42) [5]
> Desdechado © (24.07.06 10:36)
Спасибо, дело было именно в преобразовании в строку. Передал напрямую - заработало все ок.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c