Galosh
12-06-2003, 05:22
Eсть значит моя форма по криету базы данных
[hr]
c:\primer.jpg
[hr]
Колонки базы задаются компонентом Edit. Значение свойства Text присваивается некоей переменной (допустим perviy). Далее идет непосдедственно создание самой базы. Вот код:
SmallString<43> * perviy;
SmallString<43> * vtoroy;
SmallString<43> * nazva;
void __fastcall TForm4::Button1Click(TObject *Sender)
{
perviy = Edit2->Text;
vtoroy = Edit3->Text;
nazva = Edit1->Text;
Table1->Active = false;
Table1->TableName = nazva * ;
if (! Table1->Exists)
{
* Table1->TableType = ttParadox;
* Table1->FieldDefs->Clear();
* TFieldDef *pNewDef = Table1->FieldDefs->AddFieldDef();
*
* pNewDef->Name = perviy;
* pNewDef->DataType = ftString;
* pNewDef->Size = 20;
* pNewDef->Required = true;
* pNewDef = Table1->FieldDefs->AddFieldDef();
* pNewDef->Name = vtoroy;
* pNewDef->DataType = ftBoolean;
* Table1->IndexDefs->Clear();
* Table1->IndexDefs->Add("",perviy,TIndexOptions() <<ixPrimary <<ixUnique);
* Table1-> CreateTable();
* Table1->Open();
* Table1->Insert();
* Table1->FieldByName(perviy)->AsString = "Петренко";
* Table1->FieldByName(vtoroy)->AsBoolean = false;
* Table1->Post();
* ShowMessage(AnsiString("Таблица создана"));
* }
* else
* {
* ShowMessage(AnsiString("Таблица уже создана"));
* * * Table1->Active = false;
* Table1->Active = true;
* } * * * *
}
Проблема в следующем: при незаполнении любого поля выбивает мол одна из переменных пуста(тоесть не имеет значения). О думаю что ошибка в этом. Надо сделать так, чтоб если переменной не присвоено никакое значение, значит и не создавалась колонка, тоесть кусок кода типа
pNewDef = Table1->FieldDefs->AddFieldDef();
* pNewDef->Name = vtoroy;
* pNewDef->DataType = ftBoolean;
не выполнялся. Также надо переделать все, и доделать что-то(вот о том что надо до делать я у вас народ и спрашиваю).
И еще надо сделать чтоб заполнение полей было в любом случае по-порядку. Тоесть Если даных нет в первом поле, а есть во втором, то выдавалось соответствующее сообщение. А если данные есть в первов, но нет в последуюющих, то чтоб создавалась база с одной колонкой и без вывода каких либо ошибок. Работаю с Paradox
[hr]
c:\primer.jpg
[hr]
Колонки базы задаются компонентом Edit. Значение свойства Text присваивается некоей переменной (допустим perviy). Далее идет непосдедственно создание самой базы. Вот код:
SmallString<43> * perviy;
SmallString<43> * vtoroy;
SmallString<43> * nazva;
void __fastcall TForm4::Button1Click(TObject *Sender)
{
perviy = Edit2->Text;
vtoroy = Edit3->Text;
nazva = Edit1->Text;
Table1->Active = false;
Table1->TableName = nazva * ;
if (! Table1->Exists)
{
* Table1->TableType = ttParadox;
* Table1->FieldDefs->Clear();
* TFieldDef *pNewDef = Table1->FieldDefs->AddFieldDef();
*
* pNewDef->Name = perviy;
* pNewDef->DataType = ftString;
* pNewDef->Size = 20;
* pNewDef->Required = true;
* pNewDef = Table1->FieldDefs->AddFieldDef();
* pNewDef->Name = vtoroy;
* pNewDef->DataType = ftBoolean;
* Table1->IndexDefs->Clear();
* Table1->IndexDefs->Add("",perviy,TIndexOptions() <<ixPrimary <<ixUnique);
* Table1-> CreateTable();
* Table1->Open();
* Table1->Insert();
* Table1->FieldByName(perviy)->AsString = "Петренко";
* Table1->FieldByName(vtoroy)->AsBoolean = false;
* Table1->Post();
* ShowMessage(AnsiString("Таблица создана"));
* }
* else
* {
* ShowMessage(AnsiString("Таблица уже создана"));
* * * Table1->Active = false;
* Table1->Active = true;
* } * * * *
}
Проблема в следующем: при незаполнении любого поля выбивает мол одна из переменных пуста(тоесть не имеет значения). О думаю что ошибка в этом. Надо сделать так, чтоб если переменной не присвоено никакое значение, значит и не создавалась колонка, тоесть кусок кода типа
pNewDef = Table1->FieldDefs->AddFieldDef();
* pNewDef->Name = vtoroy;
* pNewDef->DataType = ftBoolean;
не выполнялся. Также надо переделать все, и доделать что-то(вот о том что надо до делать я у вас народ и спрашиваю).
И еще надо сделать чтоб заполнение полей было в любом случае по-порядку. Тоесть Если даных нет в первом поле, а есть во втором, то выдавалось соответствующее сообщение. А если данные есть в первов, но нет в последуюющих, то чтоб создавалась база с одной колонкой и без вывода каких либо ошибок. Работаю с Paradox