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

Вниз

MSAccess   Найти похожие ветки 

 
BAYES ©   (2004-03-14 16:49) [0]

Привет!
Пытался сам разобраться с ADOX, но что-то вяло идет, а проблема стоит и кажись будет стоять.
Мне необходимо в существующую БД (db.mdb), добавить таблицу "kontr" и в нее 3 поля (id-ключевое,счетчик,случайный,a-текстовы.100,b-текстовы.100).
Создавал запросом create table kontr (id integer...), все создавалось, id был ключевым, но не счетчик и т.д.
Затем пошел по пути ADOX, вот здесь и грабли. В VB, я не очень,а в ADO210.CHM, все описания именно на нем.


 
sniknik ©   (2004-03-14 23:20) [1]

крут, не разобрался с простейшими запросами полез в движок... уважаю.

рядом с ADO210.CHM лежит JETSQL40.CHM, не пробовал читать? в связи с create table ....


 
BAYES ©   (2004-03-15 00:21) [2]

Да ладно тебе глумиться, нужно от чего-то опираться(отпираться).
Сделал такую туфту
DM.ADOQuery1.SQL.Clear;
DM.ADOQuery1.SQL.Add("create table kont (id integer primary key)");
DM.ADOQuery1.ExecSQL;
DM.ADOQuery1.Close

Все гуд, но одновременно не гуд. Вот и полез в чащебу. Там получилось лучше.
DM.ADOConnection1.Close;
cat:=CreateOleObject("ADOX.Catalog");
tab := CreateOleObject("ADOX.Table");

cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db123.mdb");
tab.name:="kont";
tab.ParentCatalog:=cat;
tab.Columns.Append("id",adInteger,0);//первое поле - счетчик
tab.Columns[0].Properties["AutoIncrement"].Value:= True; //  счетчик
cat.tables.Append(tab);

И опять не то.
JETSQL40.CHM - эту штуку уже изучаю, но вся проблема, результат нужен утром, а до утра не разобраться.


 
sniknik ©   (2004-03-15 10:51) [3]

> Да ладно тебе глумиться
перестаю, отвечаю на так и не заданный вопрос. (правильное построение запроса в вопрос не входило)
кстати интересно еще утро? еще не опоздал?
ADOCommand.CommandText:=
 "create table kont (id autoincrement primary key, name varchar(50), ...еще 2 поля)";
ADOCommand.Execute;

> И опять не то.
боюсь показатся навязчивым но что именно? не то это не то слово которым изясняются чтобы тебя поняли, вот запутать можно.


 
BAYES ©   (2004-03-15 13:04) [4]

>>sniknik ©   (15.03.04 10:51) [3]
вот вопрос
Мне необходимо в существующую БД (db.mdb), добавить таблицу "kont" и в нее 3 поля (id-ключевое,счетчик,случайный,a-текстовы.100,b-текстовы.100).
Твой пример делает(id-ключевое,счетчик,НОВОЕ НАЗНАЧЕНИЕ-ПОСЛЕДОВАТЕЛЬНО), а нужно СЛУЧАЙНО


 
Плохиш   (2004-03-15 13:23) [5]

>BAYES ©   (15.03.04 13:04) [4]

> НОВОЕ НАЗНАЧЕНИЕ-ПОСЛЕДОВАТЕЛЬНО), а нужно СЛУЧАЙНО

Хорошо, что создатели баз данных до такого маразма не додумались :-|


 
BAYES ©   (2004-03-15 18:09) [6]

Плохиш   (15.03.04 13:23) [5]
Ты о каком маразме? Открой Access в режиме конструктор, там все и увидишь! А использование autoincrement-случайного, это мне нужно, последовательное нарастание не приемлемо.


 
Плохиш   (2004-03-15 18:17) [7]

>BAYES ©   (15.03.04 18:09) [6]

> Открой Access в режиме конструктор, там все и увидишь!

Что и autoincrement случайным образом то же увижу?


 
Плохиш   (2004-03-15 18:19) [8]

И вообще, BAYES, ты бы слово increment перевёл бы, может и вопросов таких возникать не будет


 
BAYES ©   (2004-03-15 18:38) [9]

Плохиш   (15.03.04 18:19) [8]
Там ты увидиш:
1)Тип данных-Счетчик
2)в сво-х таблицы есть НОВОЕ НАЗНАЧЕНИЯ, вот там можно выбрать, последовательные или случайные.
Все закрыли ветку.


 
Doomin   (2004-03-22 13:36) [10]

Делал по книге Елмановой "ADO в Delphi" и посмотрел в TLB, формируемый из adox (DB - это обычный TADOConnection). Далее можно уже разобраться по аналогии. Я autoinc не использую, давно перешел на GUID в виду большей гибкости и постоянной потребности в репликации

var
 DBC: TCatalog;
begin
 DBC := TCatalog.Create(Self);
 try
 DBC.DefaultInterface.Set_ActiveConnection(DB.ConnectionObject);
   Table := TTable.Create(Self);
 try
   try
     Table.ParentCatalog := DBC.DefaultInterface;
     Table.Name := "TBL_Currency";
     Table.Columns.Append("ID", adGUID, 0);
     Table.Columns.Append("Name", adVarWChar, 20);
     Table.Columns.Append("LastDate", adDate, 0);
     Table.Columns.Append("Deleted", adUnsignedTinyInt, 0);
     Table.Columns.Item["ID"].Properties["Jet OLEDB:Autogenerate"].Value := True;
     Table.Columns.Item["LastDate"].Properties["Default"].Value := "Now()";
     Table.Columns.Item["Deleted"].Properties["Default"].Value := 0;
     Table.Keys.Append("IDKey", adKeyPrimary, Table.Columns.Item["ID"], "", "");
     DBC.Tables.Append(Table.DefaultInterface);
   except
     on E: Exception do
       Application.MessageBox(PAnsiChar(format(MsgDBWriteError, [E.Message])), PAnsiChar(MsgError), MB_OK or MB_ICONERROR);
   end;
 finally
   Table.Free;
 end;

 finally
   DBC.Free
 end;  
end



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
14-1080312361
Soft
2004-03-26 17:46
2004.04.18
Украинский хакер вылетает в США.


6-1077115079
Leech
2004-02-18 17:37
2004.04.18
IdFTP, Indy.


4-1076152694
Talla2k
2004-02-07 14:18
2004.04.18
не убиваемый процесс


1-1080828616
Alex_B
2004-04-01 18:10
2004.04.18
Подскажите пожалуйста новичку каким компонетом в Delphi


14-1079993660
Обитатель
2004-03-23 01:14
2004.04.18
Knight дело говорит!