Осущесвление по базе данных
Пожалуйста помогите!!!!!
Постоянно выдаёт сообщение что не индексировано или Index is out of bound и т.д.
А как искать то пытаешься?
Уважаемые программисты помогите с программным кодом поиска по базе данных. Перепробовал всё что знаю, но результат пока нет. А так программа работает лучше, чем думал. Единственная проблема написание кода поиска по базе. Среда программирования C++ Builder 5. Постоянно выдаёт сообщение что не индексировано или Index is out of bound и т.д.
Пожалуйста помогите!!!!!
И какая база?
И какая база?
База создана на Buildere Desktop Database Paradox 7.
Для поиска использовал все возможные варианты. Может что я пропустил? Помогите плиз!!!!!
База создана на Buildere Desktop Database Paradox 7.
Для поиска использовал все возможные варианты. Может что я пропустил? Помогите плиз!!!!!
Слушай ну тебе же ясно сказали - у большинства очень глюкавый релиз telepat.dll. Как я должен догадатся КАКИЕ варианты ты использовал? И откуда кто должен знать, что ТЫ пропустил? Скромнее надо быть..:)
База создана на Buildere Desktop Database Paradox 7.
Для поиска использовал все возможные варианты. Может что я пропустил? Помогите плиз!!!!!
А Lookup пробовал? Ему что индекс, что не индекс все одно.
Или Locate.
А Lookup пробовал? Ему что индекс, что не индекс все одно.
Или Locate.
Пробовал ниже описанные варианты:
1-й Вариант:
Table1->IndexFieldNames="Номер_телефона";
Table1->SetKey();
Tale1->FieldByName("Номер_телефона")-> AsInteger=Edit1->Text;
2-й Вариант:
Query1->Params->Items[3]->AsInteger=Edit1->Text;
3-й Вариант:
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
Table1->Active=False;
Table1->DatabaseName="BCDEMOS";
Table1->TableType=ttParadox;
Table1->TableName="TelSpravochnik_1.db";
if(!Table1->Exists)
{
Table1->FieldDefs->Clear();
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Код_страны";
pNewDef->DataType=ftInteger;
pNewDef->Required=true;
TFieldDef *pNewDef = Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Код_города";
pNewDef->DataType=ftInteger;
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Номер_телефона";
pNewDef->DataType=ftLargeInteger;
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Сотовый_телефон";
pNewDef->DataType=ftLargeInteger;
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="ФИО_Владельца";
pNewDef->DataType=ftString;
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Организация";
pNewDef->DataType=ftString;
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Адрес";
pNewDef->DataType=ftString;
Table1->IndexDefs->Clear();
Table1->IndexDefs->Add("", "Код_страны", TIndexOptions() <<ixPrimary <<ixUnique);
Table1->IndexDefs->Add("Fld2Index", "Код_города", TIndex() <<ixCaseInsensitive);
Table1->IndexDefs->Add("Fld3Index", "Номер_телефона", TIndex() <<ixCaseInsensitive);
Table1->IndexDefs->Add("Fld4Index", "Сотовый_телефон", TIndex() <<ixCaseInsensitive);
Table1->IndexDefs->Add("Fld5Index", "ФИО_Владельца", TIndex() <<ixCaseInsensitive);
Table1->IndexDefs->Add("Fld6Index", "Организация", TIndex() <<ixCaseInsensitive);
Table1->IndexDefs->Add("Fld7Index", "Адрес", TIndex() <<ixCaseInsensitive);
Table1->CreateTable();
Table1->IndexFieldNames="Номер_телефона";
Table1->SetKey();
Table1->FieldByName("Номер_телефона")-> AsString=Edit1->Text;
}
Может что пропуслит?
Слушай ну тебе же ясно сказали - у большинства очень глюкавый релиз telepat.dll. Как я должен догадатся КАКИЕ варианты ты использовал? И откуда кто должен знать, что ТЫ пропустил? Скромнее надо быть..:)
Пробовал ниже описанные варианты:
1-й Вариант:
Table1->IndexFieldNames="Номер_телефона";
Table1->SetKey();
Tale1->FieldByName("Номер_телефона")-> AsInteger=Edit1->Text;
2-й Вариант:
Query1->Params->Items[3]->AsInteger=Edit1->Text;
3-й Вариант:
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
Table1->Active=False;
Table1->DatabaseName="BCDEMOS";
Table1->TableType=ttParadox;
Table1->TableName="TelSpravochnik_1.db";
if(!Table1->Exists)
{
Table1->FieldDefs->Clear();
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Код_страны";
pNewDef->DataType=ftInteger;
pNewDef->Required=true;
TFieldDef *pNewDef = Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Код_города";
pNewDef->DataType=ftInteger;
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Номер_телефона";
pNewDef->DataType=ftLargeInteger;
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Сотовый_телефон";
pNewDef->DataType=ftLargeInteger;
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="ФИО_Владельца";
pNewDef->DataType=ftString;
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Организация";
pNewDef->DataType=ftString;
TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef();
pNewDef->Name="Адрес";
pNewDef->DataType=ftString;
Table1->IndexDefs->Clear();
Table1->IndexDefs->Add("", "Код_страны", TIndexOptions() <<ixPrimary <<ixUnique);
Table1->IndexDefs->Add("Fld2Index", "Код_города", TIndex() <<ixCaseInsensitive);
Table1->IndexDefs->Add("Fld3Index", "Номер_телефона", TIndex() <<ixCaseInsensitive);
Table1->IndexDefs->Add("Fld4Index", "Сотовый_телефон", TIndex() <<ixCaseInsensitive);
Table1->IndexDefs->Add("Fld5Index", "ФИО_Владельца", TIndex() <<ixCaseInsensitive);
Table1->IndexDefs->Add("Fld6Index", "Организация", TIndex() <<ixCaseInsensitive);
Table1->IndexDefs->Add("Fld7Index", "Адрес", TIndex() <<ixCaseInsensitive);
Table1->CreateTable();
Table1->IndexFieldNames="Номер_телефона";
Table1->SetKey();
Table1->FieldByName("Номер_телефона")-> AsString=Edit1->Text;
}
Может что пропуслит?
TLocateOptions Opts;
Opts.Clear();
Opts << loPartialKey;
Variant locvalues[2];
locvalues[0] = Variant("Sight Diver");
locvalues[1] = Variant("P");
CustTable->Locate("Company;Contact", VarArrayOf(locvalues, 1), Opts);
И без всяких идексов. Правда это несколько медленей работает, но зато точно работает. Проверял