powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Как задать параметр даты в запросе?
47 сообщений из 47, показаны все 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
Как задать параметр даты в запросе?
    #38724356
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineВарианты типа "найди десять отличий в переменных «а» и «a», или «aдаптеp» и «адаптер»" не рассматриваются по какой причине?
"На зло маме обморожу себе уши"? Мало кто так себя не любит.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724684
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Ну почему же сразу "назло маме". Самый яркий пример - буква «С», которая в одном месте на клавиатуре и для латинницы и для кириллицы. В случае интенсивного использования двух языков при кодировании ошибиться в названии переменной - проще простого.

Но зато можно продолжать назло всем жрать кактус, да.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724689
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonline,

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

Не работал, и, увидев как оно там, очень этому рад.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724756
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineНе работал, и, увидев как оно там, очень этому рад.когда узнаете сколько зарабатывает хороший программист 1С, то можете опечалиться :)
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724790
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadsterсколько зарабатывает хороший программист 1С
А топикстартер считается хорошим программистом по меркам 1С?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724878
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Хороший вот так не пишет:
Код: vbnet
1.
2.
3.
4.
5.
6.
Конн.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";



Понятно, что автор просто скопипастил откуда-то.
Но настоящий программист 1С написал бы это хотя бы вот так:
Код: sql
1.
2.
3.
4.
5.
6.
Конн.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";
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38724893
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadstermiwaonlineНе работал, и, увидев как оно там, очень этому рад.когда узнаете сколько зарабатывает хороший программист 1С, то можете опечалиться :)
Это вряд ли.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725127
Энди Таккер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineПринципиальная - либо регулярно переключаться между языками при кодировании, либо - нет. Я, например, даже комментарии на английском пишу чтобы не переключаться.
Как хошь, так и пишешь. Имеется и полностью английский вариант языка. Так что, дело вкуса и стиля.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725588
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WildSeryDimitry Sibiryakov,

Хороший вот так не пишет:
Код: vbnet
1.
2.
3.
4.
5.
6.
Конн.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";



Понятно, что автор просто скопипастил откуда-то.
Но настоящий программист 1С написал бы это хотя бы вот так:
Код: sql
1.
2.
3.
4.
5.
6.
Конн.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";


Я скопипастил VBS код и по быстрому подогнал его под 1с.
В 1с прелесть в том, что легко найти работу рядом с домом и зарплата будет на уровне руководителей подразделений.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725591
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь параметр передать:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
RecordSet = Новый COMОбъект("ADODB.Recordset");
  RecordSet.ActiveConnection = Конн;
  RecordSet.CursorType = 1;
  RecordSet.LockType = 3;
  RecordSet.Parameters.ParamByName("data1").Value = "date '2014-05-05'";
  RecordSet.Parameters.ParamByName("data2").Value = "date '2014-05-10'";
  //Запрос к базе данных на языке SQL запросов
НачальнаяДата = "2014-06-10";    //"ДФ=yyyy-MM-dd"
КонечнаяДата = "2014-06-12";

СтрокаЗапроса = "SELECT ID_STAFF, TABEL_INTERMEDIADATE.STAFF_ID, TABEL_INTERMEDIADATE.DATE_PASS, TABEL_INTERMEDIADATE.TIME_PASS, TABEL_INTERMEDIADATE.TYPE_PASS, TABEL_INTERMEDIADATE.CONFIG_TREE_ID, STAFF.ID_STAFF, STAFF.LAST_NAME, STAFF.FIRST_NAME, STAFF.MIDDLE_NAME
					|FROM TABEL_INTERMEDIADATE
   					|RIGHT OUTER JOIN STAFF ON (TABEL_INTERMEDIADATE.STAFF_ID = STAFF.ID_STAFF)
					|WHERE 
   					|(
      				|(TABEL_INTERMEDIADATE.DATE_PASS BETWEEN ?data1 and ?data2)
   					|)
					|ORDER BY TABEL_INTERMEDIADATE.DATE_PASS DESC, TABEL_INTERMEDIADATE.TIME_PASS";


Ошибка:
автор{Форма.Форма.Форма(43)}: Поле объекта не обнаружено (Parameters)
RecordSet.Parameters.ParamByName("data1").Value = "date '2014-05-05'";
Что я делаю не так?
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725600
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerthogЧто я делаю не так?надо брать не RecordSet объект, а другой, например Query или Command, а там уже создавать параметры необходимые.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725604
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerthogЧто я делаю не так?
Практически всё. Так что не заморачивайся на правильности, делай как можешь. 1С уже не
испортишь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725619
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerthogВ 1с прелесть в том, что легко найти работу рядом с домом и зарплата будет на уровне руководителей подразделений.Не преувеличивай величину доходов 1с-ника или не преуменьшай у руководителей.
Может, конечно, это не руководители подразделений, а какие-нибудь "начальник отдела" из 2 человек.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725779
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roadstergerthogЧто я делаю не так?надо брать не RecordSet объект, а другой, например Query или Command, а там уже создавать параметры необходимые.
RecordSet это название переменной. Если я тупо заменю RecordSet на Query или Command ничего не поменяется
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725781
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovgerthogЧто я делаю не так?
Практически всё. Так что не заморачивайся на правильности, делай как можешь. 1С уже не
испортишь.

Я пытаюсь делать как могу, но как могу не работает как надо или совсем не работает.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725793
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WildSerygerthogВ 1с прелесть в том, что легко найти работу рядом с домом и зарплата будет на уровне руководителей подразделений.Не преувеличивай величину доходов 1с-ника или не преуменьшай у руководителей.
Может, конечно, это не руководители подразделений, а какие-нибудь "начальник отдела" из 2 человек.
Тогда уж руководители отделов из 5-15 чел)
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725861
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerthogкак могу не работает как надо или совсем не работает.
Тогда тебе в раздел по 1С, там и научат и покажут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725863
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал как тут написано http://msdn.microsoft.com/en-us/library/windows/desktop/ms677209(v=vs.85).aspx
Ошибка:
авторМетод объекта не обнаружен (CreateParameter)
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725904
gerthog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roadstergerthogЧто я делаю не так?надо брать не RecordSet объект, а другой, например Query или Command, а там уже создавать параметры необходимые.
Кажется понял, нужно как то так делать!?
авторКомманда = Новый COMОбъект("ADODB.Command");
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38725954
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю вот так
Код: 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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
	// создание запроса:
	cmd = Новый COMОбъект("ADODB.Command");
	cmd.CommandText = "тут запрос";
	cmd.CommandType = 1;
	cmd.Prepared = True;
	cmd.NamedParameters = True;

	// создание параметра:
	Если ОписаниеТипа = "Булево" Тогда
		ТипПараметра = 131; // Numeric
		Size = -1;
		NumericScale = 0;
		Precision = 1;
	ИначеЕсли ОписаниеТипа = "Строка" Тогда
		ТипПараметра = 129; // Char
		Size = Стр.Размер;
		NumericScale = -1;
		Precision = -1;
	ИначеЕсли ОписаниеТипа = "Число" Тогда
		ТипПараметра = 131; // Numeric
		Size = -1;
		NumericScale = Стр.Точность;
		Precision = Стр.Размер;
	ИначеЕсли ОписаниеТипа = "Дата" Тогда
		ТипПараметра = 129;
		Size = 8;
		NumericScale = -1;
		Precision = -1;
	ИначеЕсли ОписаниеТипа = "ДатаВремя" Тогда
		ТипПараметра = 129;
		Size = 12;
		NumericScale = -1;
		Precision = -1;
	КонецЕсли;
	
	Если Size = -1 Тогда
		Параметр = cmd.CreateParameter(ИмяПараметра, ТипПараметра, 1, , );
	Иначе
		Параметр = cmd.CreateParameter(ИмяПараметра, ТипПараметра, 1, Size, );
	КонецЕсли;
	
	Если NumericScale >= 0 Тогда
		Параметр.NumericScale = NumericScale;
	КонецЕсли;
	Если Precision >= 0 Тогда
		Параметр.Precision = Precision;
	КонецЕсли;
	
	cmd.Parameters.Append(Параметр);


	// затем параметры используются как-то так:
	cmd.Parameters(ИмяПараметра).Value = ЗначениеПараметра;
	cmd.Execute();


Это для MSSQL. Для FB допили сам, тут несложно.
И, пожалуй, перенесу в ветку 1С.
...
Рейтинг: 0 / 0
Как задать параметр даты в запросе?
    #38726265
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerthogRecordSet это название переменной.нет, это объект.
впрочем ты принцип догнал немного, здесь правильный подход
gerthogКажется понял, нужно как то так делать!?
авторКомманда = Новый COMОбъект("ADODB.Command");
но рекомендую почитать что-то про ООП, откроешь много нового и интересного.

Модератор: Тема перенесена из форума "Firebird, InterBase".
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / [игнор отключен] [закрыт для гостей] / Как задать параметр даты в запросе?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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