powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Как задать параметр даты в запросе?
25 сообщений из 47, страница 1 из 2
Как задать параметр даты в запросе?
    #38723480
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть не большой запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT TABEL_INTERMEDIADATE.STAFF_ID, TABEL_INTERMEDIADATE.DATE_PASS, TABEL_INTERMEDIADATE.TIME_PASS, TABEL_INTERMEDIADATE.TYPE_PASS, TABEL_INTERMEDIADATE.CONFIG_TREE_ID, TABEL_INTERMEDIADATE.AREAS_TREE_ID
FROM TABEL_INTERMEDIADATE
WHERE 
   (
      (TABEL_INTERMEDIADATE.DATE_PASS >= ВотСюдаБыДатуМне
   )
ORDER BY TABEL_INTERMEDIADATE.DATE_PASS DESC


Что прописать вместо "ВотСюдаБыДатуМне"? Я пробовал так: CONVERT(DATETIME,'20140201000000',104) - не работает
Пробовал просто: '20140201000000' - тоже не вышло...
Что я делаю не так?
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38723484
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerthog,

а в документацию не пробовал заглянуть?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT 
  TABEL_INTERMEDIADATE.STAFF_ID, 
  TABEL_INTERMEDIADATE.DATE_PASS, 
  TABEL_INTERMEDIADATE.TIME_PASS, 
  TABEL_INTERMEDIADATE.TYPE_PASS, 
  TABEL_INTERMEDIADATE.CONFIG_TREE_ID, 
  TABEL_INTERMEDIADATE.AREAS_TREE_ID
FROM TABEL_INTERMEDIADATE
WHERE TABEL_INTERMEDIADATE.DATE_PASS >= date '2014-02-01'
ORDER BY TABEL_INTERMEDIADATE.DATE_PASS DESC
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38723490
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, спасибо, работает! В документацию пробовал заглянуть но не нашел оной, на английском вроде бы что-то есть, на русском не нашел.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38723507
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это не параметр, а тупо значение. Параметр пишется так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT
   TABEL_INTERMEDIADATE.STAFF_ID,
   TABEL_INTERMEDIADATE.DATE_PASS,
   TABEL_INTERMEDIADATE.TIME_PASS,
   TABEL_INTERMEDIADATE.TYPE_PASS,
   TABEL_INTERMEDIADATE.CONFIG_TREE_ID,
   TABEL_INTERMEDIADATE.AREAS_TREE_ID
FROM TABEL_INTERMEDIADATE
WHERE TABEL_INTERMEDIADATE.DATE_PASS >= ?
ORDER BY TABEL_INTERMEDIADATE.DATE_PASS DESC


Или в разных обёртках так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT
   TABEL_INTERMEDIADATE.STAFF_ID,
   TABEL_INTERMEDIADATE.DATE_PASS,
   TABEL_INTERMEDIADATE.TIME_PASS,
   TABEL_INTERMEDIADATE.TYPE_PASS,
   TABEL_INTERMEDIADATE.CONFIG_TREE_ID,
   TABEL_INTERMEDIADATE.AREAS_TREE_ID
FROM TABEL_INTERMEDIADATE
WHERE TABEL_INTERMEDIADATE.DATE_PASS >= :PARAM
ORDER BY TABEL_INTERMEDIADATE.DATE_PASS DESC


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38723533
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И даже так:

Param=?Param
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38723564
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerthog,

'21.01'
'21.01.2001'
...
'21.01.2001 18:00:00'
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38723588
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятно что это тупо значение, просто я не знаю как потом передать значение параметра.
Я из 1с пытаюсь подключится к базе FB выполнить запрос и обойти результат в самой 1с, есть у меня такой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Конн = Новый COMОбъект("ADODB.Connection");
	  Конн.ConnectionString = "Driver=Firebird/InterBase(r) driver;" +
	     "Dbname=127.0.0.1/3050:C:\1cbase\PERCo\SCD17K.FDB;" +  
	     "UID=login;" +                                   
	     "PWD=pass;" +                               
	     "CHARSET=WIN1251;" +                           
	     "client=C:\Program Files\Firebird\Firebird_2_5\WOW64\fbclient.dll";
	  Конн.ConnectionTimeout = 180;
	  Конн.CursorLocation = 3;
	  // Подключаемся к базе данных
	  Try
	    Конн.Open(Конн.ConnectionString);
	  Except
	    Сообщить("Не удалось выполнить подключение " + ОписаниеОшибки());
	    Return;
	EndTry;
 
  // Выполнение селективного запроса
  RecordSet = Новый COMОбъект("ADODB.Recordset");
  RecordSet.ActiveConnection = Конн;
  RecordSet.CursorType = 1;
  RecordSet.LockType = 3;
  //Запрос к базе данных на языке SQL запросов
  Try
	
	RecordSet.Open("SELECT TABEL_INTERMEDIADATE.STAFF_ID, 
                              |TABEL_INTERMEDIADATE.DATE_PASS,               TABEL_INTERMEDIADATE.TIME_PASS,
                              |TABEL_INTERMEDIADATE.TYPE_PASS, TABEL_INTERMEDIADATE.CONFIG_TREE_ID, 
                              |TABEL_INTERMEDIADATE.AREAS_TREE_ID
			      |FROM TABEL_INTERMEDIADATE
			      |WHERE 
       			      |   (
			      |      (TABEL_INTERMEDIADATE.DATE_PASS >= date '2014-02-01')
			      |   )
			      |ORDER BY TABEL_INTERMEDIADATE.DATE_PASS DESC", Конн);   //список по дате
					
  Except  
    Сообщить("Не удалось выполнить запрос " + ОписаниеОшибки());
    Конн.Close();
    Return;
  EndTry;


Вот как передать параметр не знаю, поэтому приходиться делать через ж... :)
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38723650
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerthog,

Так вот как, оказывается, выглядит код в 1С.

Пойду-ка попью кофе, передохну, успокоюсь...

Да, о чем это я. У твоего RecordSet-a есть свойства типа Params, ParamByName, ParamByIndex или что-то в этом роде?
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38723666
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineУ твоего RecordSet-a есть свойства типа Params, ParamByName, ParamByIndex
или что-то в этом роде?
Достаточно посмотреть
справку ,
чтобы найти что всё это есть, но не у набора данных. Но аффтар, очевидно, неспособен...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38723668
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineТак вот как, оказывается, выглядит код в 1С.а по моему очень мило, особенно понравилось вот это
gerthog
Код: vbnet
1.
+ ОписаниеОшибки


всё понятно и по русски.

miwaonlineУ твоего RecordSet-a есть свойства типаэто не его рекорсет - это ADO
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38723679
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, открыл ссылку, почитал(английского почти не знаю). После прочтения первый же вопрос: "И чё? Мне то чё делать с этим в 1с???" Был бы хоть один пример, хотя бы самый простой
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724037
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerthog"И чё? Мне то чё делать с этим в 1с???"переделывать на использование коллекции, а не рекордсета.
gerthogБыл бы хоть один пример, хотя бы самый простойдержи.
правда здесь не коллекция и это не 1С.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
procedure TForm1.Button1Click(Sender: TObject);
begin
OraQuery1.Open;
with ADOCommand1 do
  begin
    OraQuery1.First;
    while not OraQuery1.Eof do
      begin
        Parameters.ParamByName('VID').Value := OraQuery1.FieldValues['VID'];
        Parameters.ParamByName('TIP_RES').Value := OraQuery1.FieldValues['TIP_RES'];
        Parameters.ParamByName('VLADELEC').Value := OraQuery1.FieldValues['VLADELEC'];
        Parameters.ParamByName('ADRES').Value := OraQuery1.FieldValues['ADRES'];
        Parameters.ParamByName('MESTO').Value := OraQuery1.FieldValues['MESTO'];
        Parameters.ParamByName('VD').Value := OraQuery1.FieldValues['VD'];
        Parameters.ParamByName('SS').Value := OraQuery1.FieldValues['SS'];
        Parameters.ParamByName('VD1').Value := OraQuery1.FieldValues['VD1'];
        Parameters.ParamByName('SS1').Value := OraQuery1.FieldValues['SS1'];
        Parameters.ParamByName('P').Value := OraQuery1.FieldValues['P'];
        Parameters.ParamByName('FI').Value := OraQuery1.FieldValues['FI'];
        Parameters.ParamByName('FP').Value := OraQuery1.FieldValues['FP'];
        Parameters.ParamByName('KLASS').Value := OraQuery1.FieldValues['KLASS'];
        Parameters.ParamByName('POZYVNOJ').Value := OraQuery1.FieldValues['POZYVNOJ'];
        Parameters.ParamByName('H').Value := OraQuery1.FieldValues['H'];
        Parameters.ParamByName('DATA').Value := OraQuery1.FieldValues['DATA'];
        Parameters.ParamByName('SROK').Value := OraQuery1.FieldValues['SROK'];
        Parameters.ParamByName('RAZRESCH').Value := OraQuery1.FieldValues['RAZRESCH'];
        Parameters.ParamByName('ZAVNOMER').Value := OraQuery1.FieldValues['ZAVNOMER'];
        Parameters.ParamByName('IND').Value := OraQuery1.FieldValues['IND'];
        Execute;
        OraQuery1.Next;
      end;
  end;
end;
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724085
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roadster, в приведенном примере неясно это передача параметров в запрос или присвоение значений параметрам?
Оператор ":=" это вроде бы присвоение, так?
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724093
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerthog, параметрам команды (процедуры) задаются значения из полей запроса в цикле.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724128
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadstermiwaonlineТак вот как, оказывается, выглядит код в 1С.а по моему очень мило, особенно понравилось вот это
gerthog
Код: vbnet
1.
+ ОписаниеОшибки


всё понятно и по русски.

Мне больше вот это понравилось
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
          Конн.ConnectionString = "Driver=Firebird/InterBase(r) driver;"
....
	  Try
	    Конн.Open(Конн.ConnectionString);
	  Except
	    Сообщить("Не удалось выполнить подключение " + ОписаниеОшибки());
	    Return;
	EndTry;
Первый оператор английский, второй - кириллица, или объект/класс на кириллице, его своства - латиницей. Весело наверное люди живут.

roadstermiwaonlineУ твоего RecordSet-a есть свойства типаэто не его рекорсет - это ADO
Это ты типа к буковкам решил придраться? Ну хорошо, измени для себя на "у используемого тобой рекордсета".
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724130
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineПервый оператор английский, второй - кириллица, или объект/класс на кириллице, его своства - латиницей.
Это переменная. Какая разница на каком она языке?

Код: java
1.
FoldersAdapter адаптер = new FoldersAdapter(this);
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724131
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanmiwaonlineПервый оператор английский, второй - кириллица, или объект/класс на кириллице, его своства - латиницей.
Это переменная. Какая разница на каком она языке?

Код: java
1.
FoldersAdapter адаптер = new FoldersAdapter(this);


Принципиальная - либо регулярно переключаться между языками при кодировании, либо - нет. Я, например, даже комментарии на английском пишу чтобы не переключаться.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724148
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlinewadmanпропущено...

Это переменная. Какая разница на каком она языке?

Код: java
1.
FoldersAdapter адаптер = new FoldersAdapter(this);



Принципиальная - либо регулярно переключаться между языками при кодировании, либо - нет. Я, например, даже комментарии на английском пишу чтобы не переключаться.
То есть никакой, лишь личная неприязнь (лень). :)
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724149
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonline,

если пользователю надо ошибки на русском языке выводить или диалоги строить всё равно переключаться придётся.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724231
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineЭто ты типа к буковкам решил придраться?это я просто обратил внимание, что ТС стоит почитать про ADO :)
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724250
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerthogв приведенном примере неясно это передача параметров в запрос или присвоение значений параметрам?в данном случае это не имеет значения.
но раз уж докапываться до таких мелочей, то это присвоение значений параметрам объекта ADOCommand1, затем производится вызов метода Execute для данного объекта.
если интересно, то в объекте ADOCommand1 есть свойство CommandText, содержащее следующий код
Код: sql
1.
2.
3.
4.
5.
6.
SET IDENTITY_INSERT Station ON;
insert into Station (VID, TIP_RES, VLADELEC, ADRES, MESTO, VD, SS, P, FI, FP, KLASS, POZYVNOJ, H, RAZRESCH, DATA, SROK, SV_REG, DATA_SV_R, SROK_SV_R, RAZR_FREQ, 
                         DATA_R_FR, SROK_R_FR, ZAVNOMER, CENTREDE, FUNC, AZIMUT, USILENIE, UROVEN, ANTENNA, POLARIZ, OTVETST, IND, VD1, SS1)
VALUES (:VID, :TIP_RES, :VLADELEC, :ADRES, :MESTO, :VD, :SS, :P, :FI, :FP, :KLASS, :POZYVNOJ, :H, :RAZRESCH, :DATA, :SROK, NULL, NULL, NULL, NULL,
                         NULL, NULL, :ZAVNOMER, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, :IND, :VD1, :SS1);
SET IDENTITY_INSERT Station OFF;


так же у объекта ADOCommand1 есть свойство Parameters, в котором и содержатся все параметры объекта.
ну вот присваивается значение параметрам объекта ADOCommand1 и при вызове метода Execute происходит передача присвоенных значение в качестве параметров в команду insert из свойства CommandText.
ну как-то так примерно...
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724278
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот добавили бы в новое API всего один метод и можно было бы пользоваться им напрямую,
без прокладок типа ADO и ODBC...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724291
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА вот добавили бы в новое API всего один метод и можно было бы пользоваться им напрямую,
без прокладок типа ADO и ODBC...в стартовом посте про 1С речь, так что здесь ещё и в 1С надо смотреть как там чего понакурено реализовано.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724340
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

теоретически да, но это только если API FB будет работать как COM имея при этом тормоза. Да и с преобразованием статусов в исключения вроде бы пока вопрос остаётся открытым
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724350
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanmiwaonline
Принципиальная - либо регулярно переключаться между языками при кодировании, либо - нет. Я, например, даже комментарии на английском пишу чтобы не переключаться.
То есть никакой, лишь личная неприязнь (лень). :)
Варианты типа "найди десять отличий в переменных «а» и «a», или «aдаптеp» и «адаптер»" не рассматриваются по какой причине?

Симонов Денисmiwaonline,
если пользователю надо ошибки на русском языке выводить или диалоги строить всё равно переключаться придётся.
У меня весь софт мультиязычный; я к стрингам по индексам обращаюсь :)
Тем не менее - я не совсем упоротый фанат, который не переключается между языками в принципе. Я только пытаюсь минимизировать такие переключения и возможные сопутствующие ошибки.
...
Рейтинг: 0 / 0
25 сообщений из 47, страница 1 из 2
Форумы / [игнор отключен] [закрыт для гостей] / Как задать параметр даты в запросе?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]