Почему такой геморрой с датой в Delphi (ADO+Access)?, Мелкософт хреновый,даже свою тех. с БД толком связать не может

программирование делфи access ADO

НЕ ПЕРЕЙДУ Я НА ADO .NET НИКОГДА!!!!

function ReplaceStr(const str: string): string;
var
i: integer;
s: string;
begin
s := str;
for I := 0 to Length(s)-1 do
if s[i] = '.' then s[i] := '/';
Result := s;
end;

var
d1, d2: string;
begin
d1 := ReplaceStr(DateToStr(dtpFrom.Date));
d2 := ReplaceStr(DateToStr(dtpTo.Date));

Table.SQL.Text := 'Select * From maintable Where tarix Between ' + d1 + ' and ' + d2;
Table.Open;

Выдается даже те записи где, поле даты входит в когда d2 больше d1, логически Between так не должна работать
Ответы:
Возможно из-за неправильной обработки строки в функции ReplaceStr. Символы в строке отсчитываются с 1 а не с 0, измени цикл:
for I := 1 to Length(S) do
А ещё есть стандартная функция StringReplace.
А параметры в запросе религия не позволяет использовать?


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.