Описатель таблиц баз SQL сервера

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Описатель таблиц баз SQL сервера

Сообщение Antonariy » 07.06.2006 (Ср) 16:32

Небольшая утилитка, экономящая время при составлении документации на базу данных. Создает документ Word с оглавлением и описанием таблиц и их полей (название, тип). Исходники прилагаются.
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось Antonariy 08.06.2006 (Чт) 13:03, всего редактировалось 3 раз(а).
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.06.2006 (Ср) 16:44

Э...
Не хотел бы тебя расстраивать, но видел ли ты в Access утилиту (меню Tools) "Архивариус"? :)
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 07.06.2006 (Ср) 17:02

Посмотрел и не расстроился :)
Архивариус выдает слишком много инфы из-за чего страшно тормозит. Кроме того работает только с аксессом.
Утилитка делалась для смыслового описания, а не технического, детали всегда можно узнать заглянув в саму базу. Имеет смысл добавить разве что null/не null, ключи и индексы.
Лучший способ понять что-то самому — объяснить это другому.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.06.2006 (Ср) 17:18

названия таблиц с символом подчеркивание (_) неправильно прописываются в оглавлении

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.06.2006 (Ср) 17:19

и еще, не запоминается имя сервера при повторном открытии программы

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.06.2006 (Ср) 17:24

описания не вытаскивает из MS_Description :cry:

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 07.06.2006 (Ср) 21:48

Теперь прописывает, запоминает, вытаскивает.
Лучший способ понять что-то самому — объяснить это другому.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.06.2006 (Чт) 11:19

вот, отлично просто :!:
за новые кнопочки - особый респект :wink:
теперь неплохо было бы сюда добавить вывод свойства "Allow Nulls"

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.06.2006 (Чт) 11:21

в заголовок документа надо добавить имя базы
и после каждой таблицы ее комментарий из MS_Description (если есть таковой)

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 08.06.2006 (Чт) 11:37

Думаю, сначала нужно сформировать документ, а затем все разом в него вставить, так быстрее получится (во всяком случае мне так кажется)Ы а то у меня БД очень, очень большая....думаю делать будет минут 30 не меньше

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 08.06.2006 (Чт) 12:44

Думаю, сначала нужно сформировать документ, а затем все разом в него вставить
Ты предлагаешь сформировать в буфере обмена вордовскую структуру? :roll: Ну-ну. Примерчик дай, а я подумаю.
Лучший способ понять что-то самому — объяснить это другому.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 08.06.2006 (Чт) 13:06

Имя базы добавляет, nulls отображает, описание таблиц вытаскивает.
А так же выводит референсы, ключи, индексы (в т. ч. составные), их свойства.
Ну и еще: после первой проверки соединения вытаскивает (если возможно) список баз в комбобокс, исключая системные.
Лучший способ понять что-то самому — объяснить это другому.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.06.2006 (Чт) 13:46

имя базы какое-то странное:
Описание базы данных cbDB


на счет индексов не понял как работает, у меня ничего не показывает :(

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.06.2006 (Чт) 13:47

а понял, индексы в описание выводит только если нет описателя MS_Description. наверное их стоит всегда выводить, а уж потом и описание ,если есть.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 08.06.2006 (Чт) 13:51

Полезная тулза. :!: По крайней мере она мне пригодилась - сам хотел писать что-то подобное.
Совет по теме - можно добавить такую фичу, как стандартный диалог настройки соединения с базой.
Вопрос по теме - как он вызывается? :oops:
А я все практикую лечение травами...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.06.2006 (Чт) 13:55

Код: Выделить всё
Private Sub cmdConnect_Click()
On Error GoTo err_debug
Dim dl As MSDASC.DataLinks
Dim b As Boolean

    Set cn = New ADODB.Connection
    cn.ConnectionString = VBA.GetSetting(App.Title, "Connect", "ConnectionString", gConnStr)
    Set dl = New MSDASC.DataLinks
    b = dl.PromptEdit(cn)
    If b Then
        cn.Open
        Me.shpOpen.FillColor = vbGreen
        Me.txtConnect = cn.ConnectionString
        VBA.SaveSetting App.Title, "Connect", "ConnectionString", cn.ConnectionString
    End If
lb_out:
    Me.cmdExecute.Enabled = Not (cn Is Nothing)
    Me.cmdSave.Enabled = Not (cn Is Nothing)
    Set dl = Nothing
    Exit Sub
   
err_debug:
    Set cn = Nothing
    MsgBox Err.Number & ":" & Err.Description & vbCrLf & _
           " on line: " & Erl, vbCritical
    Resume lb_out
   
End Sub

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 08.06.2006 (Чт) 14:24

Спасибо.
А как это будет выглядеть на АСМе или Делфях (интересует API реализация)?
А я все практикую лечение травами...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.06.2006 (Чт) 14:46

не знаю, а зачем API?
на дельфях можешь юзать тот-же com-объект

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 08.06.2006 (Чт) 15:03

а зачем API?
Так привычней.
на дельфях можешь юзать тот-же com-объект
Ну и на АСМе тоже.
А я все практикую лечение травами...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 08.06.2006 (Чт) 15:12

Работать с COM? Через API?
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 08.06.2006 (Чт) 15:20

Konst_One писал(а):имя базы какое-то странное:
Описание базы данных cbDB
Принял к сведению.
Konst_One писал(а):наверное их стоит всегда выводить, а уж потом и описание ,если есть.
На самом деле так и работает.
Twister писал(а):Совет по теме - можно добавить такую фичу, как стандартный диалог настройки соединения с базой.
Пока программа работает только с SQL сервером, нет смысла в этом диалоге. Кроме того, ADOX работает по-разному с разными строками подключеня. В данном случае используется
Код: Выделить всё
"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=" & cbDB.Text & ";Data Source=" & txtServer.Text & ";Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;"

А если использовать
Код: Выделить всё
"Driver={SQL Server};Database=" & cbDB.Text & ";Server=" & txtServer.Text
то ADOX не может плучить информацию о ключах и индексах.
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35

    TopList