Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2019, 12:41   #1
student772
Пользователь
 
Регистрация: 02.01.2019
Сообщений: 14
По умолчанию Не распознается функция

Есть БД, созданная в среде SQL Server Management Studio.
Подключаю её в Visual Studio
Пытаюсь создать отчет, который выводит мне сделки с клиентами на указанную дату. Грубо говоря, отчет по дате.
Выходит ошибка, что функция DAY не распознается в SQL Server compact edition
Сделки и клиенты в БД есть.
Так вопрос, какую функцию использовать, чтобы выводились сделки на указанную дату?
Вот код кнопки:
Код:
#pragma endregion
        
        String^ dbf;
        SqlCeEngine^ engine;
        String^ stDataSource;       // источник данных
        SqlCeConnection^ connection;
 
        DataTable^ dt1;
 
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
             {
                DateTime^ dtime=DateTime();
 
        dtime = this->dateTimePicker1->Value;
        String^ dtimed = dtime->ToString("dd", DateTimeFormatInfo::CurrentInfo);                
        String^ dtimem = dtime->ToString("MM", DateTimeFormatInfo::CurrentInfo);
        String^ dtimey = dtime->ToString("yyyy", DateTimeFormatInfo::CurrentInfo);
                
        
 
        String^ dbf = Application::StartupPath +"\\notarius.sdf";
            stDataSource = "Data Source = '" + dbf + "';"; //защита бд
            engine = gcnew SqlCeEngine(stDataSource);
            connection = gcnew SqlCeConnection(engine->LocalConnectionString);
            connection->Open();
 
            SqlCeCommand^ command1 = connection->CreateCommand();
            command1->CommandText = "Select Нотариальное_действие.Номер_действия, Клиент.ФИО_клиента, Нотариус.ФИО_нотариуса, Содержание_сделки.Описание_сделки, Нотариальное_действие.Дата_совершения_сделки, Место_сделки.Адрес_сделки, Нотариальное_действие.Количество_документов, Нотариальное_действие.Номер_и_серия_бланка, Нотариальное_действие.Пошлина, Льгота.Название_льготы "+
            "From Нотариальное_действие, Клиент, Нотариус, Содержание_сделки, Место_сделки, Льгота  WHERE  DAY(Дата_совершения_сделки) = ? AND  Month(Дата_совершения_сделки) = ? AND  YEAR(Дата_совершения_сделки) = ? AND Нотариальное_действие.ID_клиента = Клиент.ID_клиента AND Нотариальное_действие.ID_нотариуса=Нотариус.ID_нотариуса AND Нотариальное_действие.ID_названия=Содержание_сделки.ID_названия AND Нотариальное_действие.Код_места=Место_сделки.Код_места AND Нотариальное_действие.Код_льготы=Льгота.Код_льготы";
            command1->Parameters->Add("1", dtimed);
            command1->Parameters->Add("2", dtimem);
            command1->Parameters->Add("3", dtimey);
            SqlCeDataReader^ read1 = command1->ExecuteReader();
 
        DataTable^ dt1;
        dt1 = gcnew DataTable();
 
        // Заполнение "шапки" таблицы
        dt1->Columns->Add("Номер_действия");
        dt1->Columns->Add("ФИО_клиента");
        dt1->Columns->Add("ФИО_нотариуса");
        dt1->Columns->Add("Описание_сделки");
        dt1->Columns->Add("Дата_совершения_сделки");
        dt1->Columns->Add("Адрес_сделки");
        dt1->Columns->Add("Количество_документов");
        dt1->Columns->Add("Номер_и_серия_бланка");
        dt1->Columns->Add("Пошлина");
        dt1->Columns->Add("Название_льготы");
 
        while (read1->Read() == true)
        // ЗЗаполнение клеток (ячеек) таблицы
        {
            dt1->Rows->Add(read1->GetValue(0), 
                read1->GetValue(1),
                read1->GetValue(2),
                read1->GetValue(3),
                read1->GetValue(4),
                read1->GetValue(5),
                read1->GetValue(6),
                read1->GetValue(7),
                read1->GetValue(8),
                read1->GetValue(9));
        }
           
        read1->Close();  
        dataGridView1->DataSource = dt1;
             }
Изображения
Тип файла: jpg дата1.jpg (100.0 Кб, 122 просмотров)
Тип файла: png дата2.png (14.2 Кб, 63 просмотров)
student772 вне форума Ответить с цитированием
Старый 03.01.2019, 13:04   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Похоже не поддерживается. И не только day, но и month с year
https://docs.microsoft.com/en-us/pre...077(v=sql.110)
Так что сравнивай Дата_совершения_сделки непосредственно с датой. А зачем вообще такой трюк для условия по дате?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 03.01.2019 в 13:07.
Аватар вне форума Ответить с цитированием
Старый 03.01.2019, 13:26   #3
student772
Пользователь
 
Регистрация: 02.01.2019
Сообщений: 14
По умолчанию

month и year прекрасно работают в другой форме
student772 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не распознается сертификат kodagen ASP.NET 2 19.04.2018 08:33
При создании текстового файла не распознается русский шрифт Hornet_nsk Паскаль, Turbo Pascal, PascalABC.NET 13 10.12.2014 20:24
Сайт неправильно распознается Oengus PHP 7 04.07.2012 10:20
Неверно распознается цвет пикселя Риндера Мультимедиа в Delphi 10 03.09.2011 01:02
не распознается тип systemmind Общие вопросы C/C++ 5 09.07.2011 21:50