Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.06.29;
Скачать: CL | DM;

Вниз

Создаеие бд 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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.007 c
15-1386856880
Ega23
2013-12-12 18:01
2014.06.29
Народ, а как в Excel-е добавить N рядов?


2-1377689079
DZM
2013-08-28 15:24
2014.06.29
Модальное окно оказывается позади


1-1326095552
solomon
2012-01-09 11:52
2014.06.29
Странность при работе с Record


15-1386762986
azlk2141
2013-12-11 15:56
2014.06.29
выбор мобильного оператора


2-1377232902
NBAH1990
2013-08-23 08:41
2014.06.29
Проблема с редактированием записи в БД