Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.035 c
6-1074576336
2ac
2004-01-20 08:25
2004.04.18
Как узнать свой текущий IP?


3-1079606654
Чайник.
2004-03-18 13:44
2004.04.18
DBComboBox?


3-1079549862
BOPOH
2004-03-17 21:57
2004.04.18
Как записать OEM-кирилицу в SQL2000 под ХР


3-1079589072
Nax
2004-03-18 08:51
2004.04.18
Два вопроса по синтаксису TQuery.SQL


14-1080245184
Антон Пускин
2004-03-25 23:06
2004.04.18
Функция





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский