Форум: "Начинающим";
Текущий архив: 2014.06.29;
Скачать: [xml.tar.bz2];
ВнизСоздаеие бд MS access во время выполнения без ОБЯЗАТЕЛЬНЫХ ПОЛЕЙ Найти похожие ветки
← →
Максим (2013-04-08 19:09) [0]Приветствую.
У меня проблема, понятная из шапки. Все прекрасно работает, но при открытие в Access все поля обязательны для заполнения. как избежать этого, что записать и куда.
← →
Максим (2013-04-08 19:13) [1]вот код.
procedure TForm2.Button1Click(Sender: TObject);
var
TableManom:_Table; //МАНОМЕТРЫ
TableOborud:_Table; //ОБОРУДОВАНИЕ
Column: _Column;
begin
Close;
Form1.SaveDialog1.FileName := Form2.Edit1.Text;
if Form1.SaveDialog1.Execute then
else Exit;
// Создание базы данных
Catalog := CoCatalog.Create;
Catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Form1.SaveDialog1.FileName);
Catalog.Set_ActiveConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Form1.SaveDialog1.FileName);
begin
// Создание таблицы ОБОТУДОВАНИЯ
TableOborud := CoTable.Create;
TableOborud.Name := "Оборудование";
TableOborud.ParentCatalog := Catalog;
// Создать ключевое поле
Column := CoColumn.Create;
with Column do
begin
ParentCatalog := Catalog;
Name := "Key1";
Type_ := adInteger;
Properties["Autoincrement"].Value := True;
Properties["Description"].Value := "Ключевое поле";
end;
// Добавить поле к таблице
TableOborud.Columns.Append(Column, 0, 0);
Column := Nil;
// Создаём ещё несколько полей
with TableOborud.Columns do
begin
Append("Оборудование", adVarWChar, 12);
end;
end;
begin
// Создание таблицы МАНОМЕТРЫ
TableManom := CoTable.Create;
TableManom.Name := "Манометры";
TableManom.ParentCatalog := Catalog;
// Создать ключевое поле
Column := CoColumn.Create;
with Column do
begin
ParentCatalog := Catalog;
Name := "Key1";
Type_ := adInteger;
Properties["Autoincrement"].Value := True;
Properties["Description"].Value := "Ключевое поле";
end;
// Добавить поле к таблице
TableManom.Columns.Append(Column, 0, 0);
Column := Nil;
// Создаём ещё несколько полей
with TableManom.Columns do
begin
Append("Тип", adInteger, 100);
Append("Среда", adInteger, 100);
Append("Оборудование", adInteger, 100);
Append("Давление", adInteger, 100);
Append("Еденица_измерения", adInteger, 100);
Append("Диаметр", adInteger, 100);
Append("Класс_точности", adInteger, 100);
Append("Номер", adVarWChar, 10);
Append("Комментарий", adVarWChar, 55);
Append("Состояние", adInteger, 100);
Append("Поверка", adInteger, 100);
end;
end;
// Добавить таблицу к базе данных
Catalog.Tables.Append(TableManom);
Catalog.Tables.Append(TableOborud);
end;
← →
clickmaker © (2013-04-08 19:18) [2]а чего-нить типа Properties["Required"] или Properties["Mandatory"] нету?
← →
Максим (2013-04-08 19:34) [3]"Required" выставлял в true. все по прежднему.
← →
Медвежонок Пятачок © (2013-04-08 19:38) [4]искать свойство нуллабел или похожее по смыслу
← →
clickmaker © (2013-04-08 19:41) [5]> "Required" выставлял в true
так выставлять надо в false
← →
Максим (2013-04-08 19:54) [6]
> clickmaker © (08.04.13 19:41) [5]
> > "Required" выставлял в trueтак выставлять надо в false
было в false
← →
clickmaker © (2013-04-08 19:59) [7]Properties["Jet OLEDB:Allow Zero Length"].Value := true ?
← →
Максим (2013-04-08 20:04) [8]аааааааааааааааааа это куда вписать????????
← →
clickmaker © (2013-04-08 20:10) [9]> куда вписать
а сам-то как думаешь?
← →
Максим (2013-04-08 20:18) [10]не контачит
← →
clickmaker © (2013-04-08 20:24) [11]ну значит, плохо провода зачистил, что я могу сказать...
← →
Максим (2013-04-08 20:31) [12]Ладно, эту проблему я решил по другому. В ходе добавления записей, ставлю галочку к нужному DBEdit "Не заполнять". Работает чуднО. Итог: Сохраняет все нормально, а при редактирование поле оказывается пустое.В Access также пусто.
← →
Максим (2013-04-08 20:38) [13]и еще вопрос:
Название колонок в базе создаются, хотелось бы сделать так. что бы в этой талице был выбор оборудования. Например - Насос № 1.begin
// Создание таблицы ОБОТУДОВАНИЯ
TableOborud := CoTable.Create;
TableOborud.Name := "Оборудование";
TableOborud.ParentCatalog := Catalog;
// Создать ключевое поле
Column := CoColumn.Create;
with Column do
begin
ParentCatalog := Catalog;
Name := "Key1";
Type_ := adInteger;
Properties["Autoincrement"].Value := True;
Properties["Description"].Value := "Ключевое поле";
end;
// Добавить поле к таблице
TableOborud.Columns.Append(Column, 0, 0);
Column := Nil;
// Создаём ещё несколько полей
with TableOborud.Columns do
begin
Append("Оборудование", adVarWChar, 12);
end;
end;
← →
Anatoly Podgoretsky © (2013-04-08 21:22) [14]
> У меня проблема, понятная из шапки.
Совсем не понятно, поскольку нет обязательных полей, совсем нет.
← →
Максим (2013-04-08 21:46) [15]
> Anatoly Podgoretsky © (08.04.13 21:22) [14]
> > У меня проблема, понятная из шапки. Совсем не понятно,
> поскольку нет обязательных полей, совсем нет.
Собрать пробовали?
← →
Ega23 © (2013-04-09 00:09) [16]А скриптом создать - не?
← →
брат Птибурдукова (2013-04-09 00:26) [17]
> Максим (08.04.13 19:13) [1]
А зачем так мудрёно? Чем обычные TADOTable не устроили? Ну и [16]…
← →
sniknik © (2013-04-09 01:35) [18]> Собрать пробовали?
зачем? и так ясно. -
> В ходе добавления записей, ставлю галочку к нужному DBEdit "Не заполнять". Работает чуднО. Итог: Сохраняет все нормально, а при редактирование поле оказывается пустое.В Access также пусто.
в "обязательных" полях не может быть пусто, хоть где ставь галки, хоть весь уставься, а без значения запись не запишется. контролируется движком.
т.е. у тебя изначально не было "проблемы с обязательностью", либо ничего не ясно. в смысле - Anatoly Podgoretsky © (08.04.13 21:22) [14], а не с чего начинается мой пост.
← →
Максим (2013-04-10 18:42) [19]
> брат Птибурдукова
> TADOTable не устроили
Для работы с бд использ. ADOConection , ADOTable
← →
Ega23 © (2013-04-10 20:07) [20]
> Для работы с бд использ. ADOConection , ADOTable
А зачем тогда такой изврат в создании структуры через COM?
ADOConnection.Execute - и вперёд с песнями.
← →
Максим (2013-04-10 23:05) [21]Если бы я знал как
← →
sniknik © (2013-04-11 07:55) [22]как -
ADOConection.Execute("CREATE TABLE xxxx (yyy INT, ...)")
см. справку по sql (лучше в акцессе/используемом движке)
← →
Ega23 © (2013-04-11 08:05) [23]
> Если бы я знал как
Как - в Access справка есть. А ты выбрал самый неоднозначный и наиболее геморройный способ, в котором ошибок наделаешь гораздо больше.
← →
Максим (2013-04-12 23:24) [24]Все глухо
← →
Дмитрий (2013-08-27 19:00) [25]https://www.google.ru/search?client=opera&q=ado+extensions&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest#channel=suggest&fp=5ca0388dffb6b745&newwindow=1&psj=1&q=%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5+mdb+delphi
← →
Дмитрий (2013-08-27 19:04) [26]https://www.google.ru/search?client=opera&q=ado+extensions&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest#channel=suggest&fp=5ca0388dffb6b745&newwindow=1&psj=1&q=%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5+mdb+delphi
+ ADOX_TLB (Расширение АДО)
← →
Anatoly Podgoretsky © (2013-08-27 20:47) [27]
> Максим (10.04.13 23:05) [21]
Позови того, кто знает.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.06.29;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.002 c