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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2010, 04:57   #1
9rki
Пользователь
 
Регистрация: 30.03.2010
Сообщений: 12
Вопрос База данных,механизм ADO

привет всем! время уже 5 утра, завтра нужно принести на зачет к допуску. не могу понять что неправильно делаю..

Код:
#include <DateUtils.hpp>
#include <ComObj.hpp>

AnsiString stDay[7]  = {"воскресенье","понедельник","вторник",
"среда","четверг","пятница","суббота"};
AnsiString stMonth[12]  = {"января","февраля","марта",
"апреля","мая","июня","июля","августа",
"сентября","октября","ноября","декабря"};
void __fastcall TForm1::FormCreate (TObject *Sender)
 {
TDateTime Today,
NextDay;
Word  Year, Month, Day;
Today = Now();
DecodeDate(Today, Year, Month, Day);
Label1->Caption = "Сегодня " + IntToStr(Day)  + " " +
							stMonth[Month-1]  + " " +
					   IntToStr(Year) + " года,  " +
						  stDay[DayOfWeek(Today) -1];
Label2->Caption = "Сегодня и ближайшие дни";
switch ( DayOfWeek(Today) )       {
			case 6  :  NextDay = Today + 3; break;
			case 7  :  NextDay = Today + 2; break;
			default :  NextDay = Today + 1; break;
}
ADODataSet1->CommandText =
"SELECT * FROM schedule WHERE aDate BETWEEN DateValue(' " +
FormatDateTime("dd/mm/yyyy",Today)  + "')   AND DateValue(1" +
FormatDateTime("dd/mm/yyyy",NextDay)  + "')  ORDER BY aDate";
 if ( CheckBox1->Checked)  ShowSQL ();
try
{
ADODataSet1->Open();
}
catch  ( EOleException &e)
{
ShowMessage  ("Ошибка обращения к БД. База данных Planner.mdb должна"
	   "быть варегистрирована\пв системе как источник данных ODBC "
	   "под именем dplaner");
Button1->Enabled = false;
Button2->Enabled = false;
Button3->Enabled = false;
Button4->Enabled = false;
return;
 }
if ( ! ADODataSet1->RecordCount)
ShowMessage("На сегодня и ближайшие дни ни каких дел не запланировано.");
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString today = FormatDateTime("dd/mm/ yyyy ",Now() );
  Form1->Label2->Caption = "Сегодня";
  ADODataSet1->Close();
  ADODataSet1->CommandText =
		  "SELECT * FROM schedule WHERE aDate = DateValue('" + today +"')";
if (CheckBox1->Checked) ShowSQL();
ADODataSet1->Open();
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString tomorrow = FormatDateTime("dd/mm/yyyy", Now() +1 );
Label2->Caption = "Завтра";
ADODataSet1->Close();
ADODataSet1->CommandText =
"SELECT * FROM schedule WHERE aDate = DateValue('" +
				 tomorrow + "')";
if  ( CheckBox1->Checked)  ShowSQL();
ADODataSet1->Open();

   if  (   ! ADODataSet1->RecordCount )
	 {
	 ShowMessage("На завтра никаких дел не запланировано!");
	 }
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
TDateTime Present, eWeek;
Label2->Caption = "На этой неделе";
Present= Now();
eWeek = EndOfAWeek(YearOf(Present),WeekOf(Present));
ADODataSet1->Close();
ADODataSet1->CommandText =
" SELECT * FROM schedule WHERE aDate BETWEEN DateValue('" +
	  FormatDateTime("dd/mm/yyyy",Present)+"')ANDDateValue('"
	  FormatDateTime("dd/mm/yyyy",eWeek) + "') ORDER BY aDate";
 if  ( CheckBox1->Checked)  ShowSQL();
ADODataSet1->Open();
if  (   ! ADODataSet1->RecordCount )
ShowMessage("На эту неделю ни каких дел не запланировано.");

}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
ADODataSet1->Close();
ADODataSet1->CommandText = "SELECT * FROM schedule ORDER BY aDate";
if  ( CheckBox1->Checked)  ShowSQL();

ADODataSet1->Open() ;
Label2->Caption = "Все, что намечено сделать";
}
 void __fastcall TForm1::ShowSQL(void)
 {
  ShowMessage ( ADODataSet1->CommandText );
 }
причем непонятно почему в строке:
FormatDateTime("dd/mm/yyyy",eWeek) + "') ORDER BY aDate" синтаксическую ошибку (Statement missing) я себе все глаза измозолил, не могу понять что не так.

Ошибки:

[BCC32 Error] planner.cpp(56): E2268 Call to undefined function 'ShowSQL'
[BCC32 Error] planner.cpp(91): E2268 Call to undefined function 'ShowSQL'
[BCC32 Error] planner.cpp(108): E2268 Call to undefined function 'ShowSQL'
[BCC32 Error] planner.cpp(132): E2379 Statement missing ;
[BCC32 Error] planner.cpp(133): E2268 Call to undefined function 'ShowSQL'
[BCC32 Error] planner.cpp(146): E2268 Call to undefined function 'ShowSQL'
[BCC32 Error] planner.cpp(152): E2316 '_fastcall TForm1::ShowSQL()' is not a member of 'TForm1'

помогите исправить
9rki вне форума Ответить с цитированием
Старый 27.05.2010, 04:58   #2
9rki
Пользователь
 
Регистрация: 30.03.2010
Сообщений: 12
По умолчанию

Код:
//---------------------------------------------------------------------------

#ifndef plannerH
#define plannerH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
#include <DBCtrls.hpp>
#include <DBGrids.hpp>
#include <DBTables.hpp>
#include <ExtCtrls.hpp>
#include <Grids.hpp>
#include <DBClient.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
	TDataSource *DataSource1;
	TDBGrid *DBGrid1;
	TCheckBox *CheckBox1;
	TDBNavigator *DBNavigator1;
	TButton *Button1;
	TButton *Button2;
	TButton *Button3;
	TButton *Button4;
	TLabel *Label1;
	TLabel *Label2;
	TADOConnection *ADOConnection1;
	TADODataSet *ADODataSet1;
	void __fastcall Button1Click(TObject *Sender);
	void __fastcall Button2Click(TObject *Sender);
	void __fastcall Button3Click(TObject *Sender);
	void __fastcall Button4Click(TObject *Sender);
	void __fastcall FormCreate(TObject *Sender);

private:	// User declarations
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
9rki вне форума Ответить с цитированием
Старый 27.05.2010, 07:46   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
void __fastcall TForm1::ShowSQL(void)
Все эт хоросё только вот в классе я описания этого метода не вижу:
Цитата:
[BCC32 Error] '_fastcall TForm1::ShowSQL()' is not a member of 'TForm1'
Значит нужно
Код:
private:	// User declarations
 void __fastcall TForm1::ShowSQL(void);
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);
Цитата:
ANDDateValue
Это слитно быть не должно. Тут AND DateValue - пробел ставь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.05.2010, 13:32   #4
9rki
Пользователь
 
Регистрация: 30.03.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Значит нужно
спасибо большое! мозг уже кипит )

а по поводу ошибки синтаксической... дело не в пробеле, это я когда тут в сообщении удалял их нечаянно удалил.

ошибка остаётся по прежнему. я даже переписывал строку несколько раз
Изображения
Тип файла: jpg PIXXXXXX.jpg (48.9 Кб, 56 просмотров)
9rki вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
База данных Tomoa Microsoft Office Access 5 30.04.2010 10:43
Небольшая база в Open Office База данных. sashaman Фриланс 3 11.04.2010 20:13
База данных Bariy47 Фриланс 13 22.02.2010 22:18
База данных с возможностью приема данных из файлов Excel Al_Sha БД в Delphi 6 16.10.2009 15:34
База данных Alex XXX Помощь студентам 3 08.08.2008 10:23