![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Имена баз, режим конструктора таблицы, визуальное создание связей [D6, D7, MSSQL]
6op9I © (2005-01-07 21:34:00)Помогит пожалуйста, как с MMSQL сервера считать имена всех баз данных?
Еще такой вопрос: как в DBgrid вывести выбранную таблицу в режиме конструктора, т.е.:
Имена полей|Типы полей|Длина
и считать с сервера все допустимые на нем тыпы данных.
Да! и как созать в окне еще маленькие окна (Имена таблиц, в которых будут находиться поля таблиц) и соединять поля мышкой (делать связи между таблицами) т.е.:
______________________________________
| __________ |
| |Таблица1 | _________ |
| ---------- |Таблица2| |
| | поле1 |-| --------- |
| | поле2 | |-------|поле1 | |
| | поле3 | |поле2 | |
| | поле4 | ---------- |
| ---------- |
| |
| |
sniknik (2005-01-09 18:55:00) [1]> а как также в listbox вогнать типы полей выбранной таблицы
также не получится, по siColumns в аналогичной реализации информация о типах возвращается в поле DATA_TYPE с которое само имеет тип интежер (целое число), потребуются дополнительные преобразования к привычному строковому названию...
а вообще, ты намерен чтонибудь сам делать? или может сразу передаш задание на курсовой мне... попытаешся заинтересовать деньгами (например). ;о)
Nikolay M. (2005-01-09 17:51:00) [2]
> как с MMSQL сервера считать имена всех баз данных?
sp_databases
> в listbox вогнать типы полей выбранной таблицы
INFORMATION_SCHEMA.COLUMNS
> и считать с сервера все допустимые на нем тыпы данных
systypes
?
6op9I (2005-01-09 17:35:00) [3]sniknik а как также в listbox вогнать типы полей выбранной таблицы
sniknik (2005-01-08 18:10:00) [4]> Если АДО то смотри пример в демос.
ему однозначно нужно ADO юзать (всей инфы что он расписал, с BDE не получить... ну к примеру "связи" это же не что иное как внешние ключи... в BDE не получить (а может просто не знаю как. просветите))
> ... может есть ф-ция возвращающая и имена баз.
> и пожалуйста раскажите поподробнее о методе Open Schema
для примера (два в одном ;)
procedure TForm1.Button1Click(Sender: TObject);
function GetSQLDatabases(ADOConnection: TADOConnection; BasesItems: TStrings): boolean;
var
ADODataSet: TADODataSet;
CatName: TField;
begin
BasesItems.BeginUpdate;
ADODataSet:= TADODataSet.Create(nil);
try
BasesItems.Clear;
ADOConnection.OpenSchema(siCatalogs, EmptyParam, EmptyParam, ADODataSet);
CatName:= ADODataSet.FieldByName('CATALOG_NAME');
while not ADODataSet.Eof do begin
BasesItems.Add(CatName.AsString);
ADODataSet.Next;
end;
finally
ADODataSet.Free;
BasesItems.EndUpdate;
end;
end;
begin
ADOConnection1.Close;
ADOConnection1.ConnectionString:= 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False';
GetSQLDatabases(ADOConnection1, ListBox1.Items);
end;
и все, хватит дурью маятся, начинай учится. ;о))
> чтобы в DBGrid вывести таблицу в режиме конструктора вроде бы надо использовать ADODataSet тока не знаю как
ну да конечно ;о)), иш чего захотел, одной функцией конструктор, главное чтобы ADODataSet... ;о))
Anatoly Podgoretsky (2005-01-08 17:06:00) [5]TDatabase/Session
Если АДО то смотри пример в демос.
6op9I (2005-01-08 14:44:00) [6]Ну чтобы считать с уже известнй базы имена всех таблиц достаточно одной ф-ции... может есть ф-ция возвращающая и имена баз.
чтобы в DBGrid вывести таблицу в режиме конструктора вроде бы надо использовать ADODataSet тока не знаю как
и пожалуйста раскажите поподробнее о методе Open Schema
sniknik (2005-01-08 00:58:00) [7]это задание на курсовую? прям ентерпрайз менеджер описал. ;о)
давой по чуть чуть, не все сразу (и обьемно), или думаеш это вызовом обной (пары) процедур делается?
начни с изучения ADO, там смотри метод OpenSchema, получение всей инфы для реализации описаного можно получить через него. (но инфа это еще не все ;о))