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

Вниз

SQL с датами   Найти похожие ветки 

 
чайник1   (2004-01-12 14:10) [0]

Уважаемые мастера, помогите правильно составить запрос, на форме два компонента типа TDataPicker, пользователь вводит начало и конец периода для обработки, нужно выбрать все записи
делаю так.
procedure Tvv_usl.BitBtn1Click(Sender: TObject);
var sr,sr1:TDateTime;
begin
sr:=t1.Date;
sr1:=t2.date;
if sr<sr1 then
begin
dat1.plan.SQL.Text:="select * from name_graf where dat_pl>= :par0 and dat_pl<= :par1 Order by dat_pl";
dat1.plan.Params[0].asDatetime :=sr;
dat1.plan.Params[1].asDatetime :=sr1;
dat1.plan.ExecSQL;
dat1.plan.Active:=true;
end;
end;
Выдает ошибку неверный тип поля. спасибо


 
stone   (2004-01-12 14:13) [1]

Так параметры еще создать нужно


 
чайник1   (2004-01-12 14:18) [2]

так dat1.plan.Params.Add;


 
Johnmen   (2004-01-12 14:21) [3]

Что такое plan ?


 
sniknik   (2004-01-12 14:24) [4]

> dat1.plan.ExecSQL;
> dat1.plan.Active:=true;
одно из двух лишнее (первое).


 
sniknik   (2004-01-12 14:27) [5]

параметры создавать не надо если у тебя PapamCheck включен (по умолчанию так).


 
belyh   (2004-01-12 14:33) [6]

Ээээ... а у меня проблема такая:
тоже с датой, но только возникает она прямо в SQL-buildere
создаю там простую выборку, где:
date = 10.10.2003 к примеру - и сам билдео пишет мне:
Error in Criteria: Invalid use of keyword
причем дату всяко разно вводил и ччерез слэш и в кавычках - все одно


 
Johnmen   (2004-01-12 14:36) [7]

>belyh ©

Имена поле не должны совпадать с зарезервированными словами (keyword)!


 
GLFox   (2004-01-12 14:36) [8]

Если юзаешь IBX, то в D6 были проблемы в некоторых версиях.
Попробуй че-нить типа так:
{...}
with dat1.plan do begin
SQL.Text:="select * from name_graf where dat_pl between :par0 and :par1 Order by dat_pl";
ParamByName("par0").asDatetime :=sr;
ParamByName("par1").asDatetime :=sr1;
//dat1.plan.ExecSQL; <= это вообще глупость какая-то
plan.Active:=true;
end;
{...}


 
belyh   (2004-01-12 14:42) [9]


> Johnmen

блин! че то я прогнал. теперь придется все переделывать. спс


 
Mike Kouzmine   (2004-01-12 14:43) [10]

Johnmen © (12.01.04 14:36) [7] Безобразие, понаделали зарезервированных слов. С GROUP то же самое, блин.


 
чайник1   (2004-01-12 14:43) [11]

>GlFox
я уже так делал, ошибка такая же.
Вот ума и неприложу как еще...


 
GLFox   (2004-01-12 14:50) [12]

Ну так проверь тогда тип своего поля, блин. Должен быть какой-нибудь TIMESTAMP или DATE...


 
GLFox   (2004-01-12 14:52) [13]

А еще может быть что где-то имена накладываются. Или параметр с полем или поле с полем...


 
belyh   (2004-01-12 14:54) [14]

НЕеееее пацаны - дело в незарезервированном слове - я щас переписал - у меня тот же глюг что и у
> чайник1

НУ не хочет он делать выборку по полю, типа date. Сам СКуЛ Билдер мучил долго долго - он все ощибку выдает.
Paradox 7
D7
Win 2000 - хотя вряд ли это имеет значение


 
ZrenBy   (2004-01-12 14:59) [15]

Для MSSQL можно попробовать передавать дату как строку в ISO формате

dat1.plan.SQL.Text:="select * from name_graf where dat_pl>= :par0 and dat_pl<= :par1 Order by dat_pl";
dat1.plan.Params[0].asString := FormatDateTime("yyyymmdd",sr);
dat1.plan.Params[1].asString := FormatDateTime("yyyymmdd",sr1);

Тип параметра, естественно, должен быть ftString


 
Johnmen   (2004-01-12 15:00) [16]

>belyh © (12.01.04 14:54)

Ну что сказать... Пока мы не видели ни строчки кода, ни описание настроек, ни указание используемых компонент...
Частично это относится и к автору...


 
sniknik   (2004-01-12 15:08) [17]

ZrenBy © (12.01.04 14:59) [15]
лишнее, MSSQL прекрасно работает и с датой, во всяком случае у меня глюков по этому поводу не было ни разу.
всегда использую ADO (это для справки, т.к. тип доступа имеет значение)


 
чайник1   (2004-01-12 15:20) [18]

я использую компоненты с вкладки dbExpress для соединения с сервером.
поле у меня на сервере в базе точно типа даты, я ведь туда вношу информацию.
А при выборке не работает. В общем ни один совет пока не помог..


 
belyh   (2004-01-12 15:29) [19]


> чайник1

у меня такая же проблема - причем я пока нашел только один выход
создаешь новую пустую таблицу с полем типа ДАТА - и вместо твоих переменных sr и sr1 - вносишь даты в эту таблицу в соответсвующие поля - а потом, когда делаешь выборку - то сравниваешь не с введенными , так сказать, вручную значениями, а со значениями тех новых полей...
надеюсь объяснил нормально


 
Johnmen   (2004-01-12 15:30) [20]

А вот так

with ParamByName("MyParam") do begin
DataType := ftTimeStamp;
ParamType := ptInput;
AsSQLTimeStamp := DateTimeToSQLTimeStamp(sr);
end;


 
чайник1   (2004-01-12 15:39) [21]

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


 
sniknik   (2004-01-12 16:05) [22]

> поле у меня на сервере в базе точно типа даты, я ведь туда вношу информацию
не обязательно, то что вносиш это не показатель, работает автоприведение типа (не ко всем типам)
к примеру
запрос
UPDATE [Договоры производства] SET Товар1С = GetDate()
работает в MSSQL без ошибок, несмотря на то чо поле Товар1С = VarChar(50) и тоже вносит туда информацию.
т.е. по твоему DBTimeStamp в MSSQL = VarChar ?? раз вносит.

> В общем ни один совет пока не помог..
и не поможет, ясности нет, как и что делаеш. того что показал недостаточно. см. > Johnmen © (12.01.04 15:00) [16]



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

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

Наверх





Память: 0.49 MB
Время: 0.027 c
14-16744
Dark Simpson
2004-01-15 19:58
2004.02.06
Геморрой с Офисом 97


1-16483
Alexei Sviridov
2004-01-27 14:21
2004.02.06
RxLoginDialog


7-16755
Lena_sv
2003-11-20 10:09
2004.02.06
разрешение экрана


1-16290
Zarik
2004-01-20 14:04
2004.02.06
Внесение изменений в поле через Edit


1-16500
SVS-12345678
2004-01-27 14:32
2004.02.06
vcf132.ocx и InstallShield Express Borland Limited Edition





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