Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1377623196
lancomm
2013-08-27 21:06
2014.06.29
MainMenu и PageControl


2-1377746622
FIL-23
2013-08-29 07:23
2014.06.29
chart имя легенды на графике


2-1377509988
Viktor
2013-08-26 13:39
2014.06.29
ssShift + vk_numpad1


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


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский