![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Определение индексов при создании таблицы в Builder |
|
C/C++ - Определение индексов при создании таблицы в Builder
|
![]() Пользователь Сообщения: 75 |
Доброго времени суток всем. Нужна помощь такого плана - пишу прогу на С++ Builder 6. При вводе кое-каких данных и нажатии на кнопку должна создаваться таблица(если её ещё нет) и вноситься в неё данные. В суть программы думаю вникать не буду сейчас, так как не в этом суть. Примерный код такой:
AnsiString b=ComboBox4->Text+".db";//таблица имеет имя, вводимое или выбираемое в списке if(access(b.c_str(),0)!=0)//проверяем существование таблицы { Table1->Active = false; // Компонент TTable должен быть отключен. // Опишем параметры таблицы. Table1->DatabaseName = "AceLet";//БД Table1->TableType = ttParadox; //как обычно, Парадокс. // Опишем поля и их типы. Table1->FieldDefs->Clear(); TFieldDef *pNewDef=Table1->FieldDefs->AddFieldDef(); pNewDef->Name="Date";// Дата матча pNewDef->DataType=ftDate;//тип поля pNewDef->Required=true; pNewDef=Table1->FieldDefs->AddFieldDef(); pNewDef->Name="Name";// имя pNewDef->DataType=ftString;//тип поля pNewDef->Size=15; //установим, является ли поле обязательным pNewDef=Table1->FieldDefs->AddFieldDef(); pNewDef->Name="sex";// пол, принимает значения 1 или 0. Можно было сделать тип boolean, но что-то не могу с ним разобраться pNewDef->DataType=ftInteger;//тип поля pNewDef=Table1->FieldDefs->AddFieldDef(); pNewDef->Name="Ageh";// возраст1. pNewDef->DataType=ftInteger;//тип поля pNewDef=Table1->FieldDefs->AddFieldDef(); pNewDef->Name="Agea";// возраст3. pNewDef->DataType=ftInteger;//тип поля pNewDef=Table1->FieldDefs->AddFieldDef(); pNewDef->Name="Age2h";// возраст4. pNewDef->DataType=ftInteger;//тип поля pNewDef=Table1->FieldDefs->AddFieldDef(); pNewDef->Name="Age2a";// возраст5. pNewDef->DataType=ftInteger;//тип поля //следующие поля просто создаются, данные в них вносятся с другой формы позже pNewDef=Table1->FieldDefs->AddFieldDef(); pNewDef->Name="Red";// цвет pNewDef->DataType=ftInteger;//тип поля pNewDef=Table1->FieldDefs->AddFieldDef(); pNewDef->Name="Yel";// цвет2. pNewDef->DataType=ftInteger;//тип поля pNewDef=Table1->FieldDefs->AddFieldDef(); pNewDef->Name="Place";// место. pNewDef->DataType=ftInteger;//тип поля // Теперь взялись за индексы Table1->IndexDefs->Clear(); TIndexDef *newIndexDef = Table1->IndexDefs->AddIndexDef(); newIndexDef->Name = "T3"; newIndexDef->Fields = "Date"; newIndexDef->Options = TIndexOptions() << ixPrimary << ixUnique; // Ну и наконец, создаем таблицу. Table1->CreateTable(); Table1->Active=true; Table1->Append(); Table1->FieldValues["Date"] = DateTimePicker1->Date; Table1->FieldValues["Name"] = ComboBox4->Text; Table1->FieldValues["sex"] = 0; if(RadioButton1->Checked==false) { Table1->FieldValues["Ageh"] = CSpinEdit1->Value; Table1->FieldValues["Ageа"] = CSpinEdit2->Value; } Table1->FieldValues["Age2h"] = CSpinEdit3->Value; Table1->FieldValues["Age2а"] = CSpinEdit4->Value; Table1->Post(); Table1->ApplyUpdates(); } //если таблица существует, то просто вносим данные else { Table1->Active=true; Table1->Append(); Table1->FieldValues["Date"] = DateTimePicker1->Date; Table1->FieldValues["Name"] = ComboBox3->Text; Table1->FieldValues["sex"] = 1; if(RadioButton1->Checked==false) { Table1->FieldValues["Ageh"] = CSpinEdit1->Value; Table1->FieldValues["Ageа"] = CSpinEdit2->Value; } Table1->FieldValues["Age2h"] = CSpinEdit3->Value; Table1->FieldValues["Age2а"] = CSpinEdit4->Value; Table1->Post(); Table1->ApplyUpdates(); } Table1->IndexDefs->Add("Fld5Index","Agea", TIndexOptions() << ixCaseInsensitive); , тоже никакого изменения. Подскажите, что не так. А то в сети решения на Key Violation больше на отмазки похожи. |
|
------- Отправлено: 22:45, 24-04-2010 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
При создании трансляции вэб-камеры Мозилла вылетает, при этом за что-то извиняется. | vovikrus | Хочу все знать | 2 | 17-02-2010 19:03 | |
Ошибка - при создании нового подключения при сохранений логина и пароля пишет ошибку 1305 | p.s-bagdan | Microsoft Windows 2000/XP | 1 | 09-10-2008 09:33 | |
MySQL - Сколько лучше назначить индексов для таблицы? | tolbol | Программирование и базы данных | 5 | 23-07-2008 10:01 | |
Mysql, оптимизация таблицы (создание индексов) | ivank | Вебмастеру | 7 | 07-03-2007 17:47 | |
C++ Builder->Определение времени, необходимого для завершения процесса | XCodeR | Программирование и базы данных | 6 | 18-01-2005 14:40 |
|