Имя: Пароль:
1C
 
как сравнить дату ч/з SQL запрос
0 Neighbour
 
12.06.07
19:10
архзадача - быстро снести все документы из базы раньше определенной даты (понимаю, ссылки, бла-бла-бла - это уже мои проблемы), но заткнулся на этом

Не отбираются записи по дате. перепробовал многое.
Подскажите, кто сталкивался

//*******************************************
Процедура Сформировать()
 Path=путьДБФ; //Путь к папке с файлами DBF
 
 
 //Открываем соединение
 DBConn = CreateObject("ADODB.Connection");
 DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" +
                  "Data Source=" + Path + ";" +
                  "Extended Properties=""DBASE IV;"";");            

 //Делаем выборку
 Persons = DBConn.Execute("Select IDDOC,DATE from 1SJOURN.DBF AS m WHERE (m.DATE < 20070101  ) ORDER BY m.date DESC");
 ш =1;
 //для ш =1 по 50 цикл
 Пока Persons.EOF=0 Цикл //Цикл по записям DBF
     ш = ш+1;
    Сообщить("Date = "+Persons.Fields("DaTE").value+" ID = "+ Persons.Fields("IDDOC").value);
   Persons.MoveNext(); //Переходим к след. записи DBF
   Если ш=50 тогда
       прервать;
   КонецЕсли;
 КонецЦикла;
 DBConn.Close(); //Закрываем соединение

КонецПроцедуры
1 ТелепатБот
 
гуру
12.06.07
19:10
2 КонецЦикла
 
12.06.07
19:19
'20070101'
3 КонецЦикла
 
12.06.07
19:20
А оно точно в формате именно такой даты, без времени и т.п.?
4 КонецЦикла
 
12.06.07
19:21
Тьху, это ДБФ
Там по-другому
Посмотри что в таблице, может поможет DTOS(ДатаВТаблице)
5 toypaul
 
гуру
12.06.07
19:40
6 774816
 
13.06.07
07:26
m.DATE <  { d '2007-01-01' }
7 Neighbour
 
13.06.07
11:16
Persons = DBConn.Execute("Select IDDOC,DATE from 1SJOURN.DBF AS m WHERE (m.DATE < {d '2007-06-01'}  ) ORDER BY m.date DESC");
{D:\EXTERNALREPORTS\SQL.ERT(19)}: Microsoft JET Database Engine: Неверно сформированный код GUID. в выражении запроса '(m.DATE < {d '2007-06-01'}  )'.
8 Neighbour
 
13.06.07
11:32
Ага, понял
Скачал дрова http://msdn2.microsoft.com/en-us/vfoxpro/bb190233.aspx
Итоговый код такой

Процедура Сформировать()
 Path=путьДБФ; //Путь к папке с файлами DBF
 DBConn = CreateObject("ADODB.Connection");
 DBConn.Open("Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB="+Path+"; BackgroundFetch=No;");

         
 //Делаем выборку
 Persons = DBConn.Execute("Select IDDOC,DATE from 1SJOURN.DBF AS m WHERE (m.DATE < {d '2007-06-01'}  ) ORDER BY m.date DESC");
 ш =1;
 //для ш =1 по 50 цикл
 Пока Persons.EOF=0 Цикл //Цикл по записям DBF
     ш = ш+1;
    Сообщить("Date = "+Persons.Fields("DaTE").value+" ID = "+ Persons.Fields("IDDOC").value);
   Persons.MoveNext(); //Переходим к след. записи DBF
   Если ш=50 тогда
       прервать;
   КонецЕсли;
 КонецЦикла;
 DBConn.Close(); //Закрываем соединение

КонецПроцедуры
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн