Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Новости сайта "Упражнения по SQL" (http://www.sql-ex.ru) 64


Информационный Канал Subscribe.Ru

Новости сайта "Упражнения по SQL (http://www.sql-ex.ru)" Выпуск 64 (03 декабря 2005 г.)

http://www.sql-ex.ru

Новым посетителям сайта

Сайт посвящен изучению языка, с помощью которого осуществляется взаимодействие с реляционными (и не только) СУБД. Суть обучения состоит в выполнении заданий на написание запросов к учебным базам данных; при этом система контролирует правильность выполнения заданий. В настоящее время реализованы все операторы подъязыка манипуляции данными (DML), которые включают в себя оператор извлечения данных SELECT, а также операторы модификации данных - INSERT, DELETE и UPDATE.

Мы надеемся, что справочного материала сайта окажется достаточно для самостоятельного обучения. Кроме того, свои решения вы можете обсудить на форуме сайта. Опытных же специалистов приглашаем проверить (продемонстрировать) свое мастерство и принять участие в соревновании, обеспечиваемом рейтинговой системой учета времени выполнения заданий. Фактически, рейтинг ведется на втором этапе тестирования, который начинается сейчас после решения 59-ти задач первого этапа. При подсчете рейтинга каждого участника отбрасывается один самый худший показатель среди всех решенных им упражнений.

Демонстрация плана выполнения запроса и сравнительная оценка эффективности решений поможет вам освоить принципы оптимизации запросов.

Имеется возможность получить сертификат по SQL DML при выполнении определенного количества заданий.


Новости сайта

§ Выставлены две новые задачи от paparome. Они заменили задачи 59 и 72. Рейтинговый этап теперь начинается с 59 задачи. Надеюсь, что задачи понравятся. На очереди еще две задачи.
Просроченные заказы сертификатов удалены. Непросроченные остаются в силе.

§ К сожалению, тестовое решение задачи 72 содержало ошибку. Это обнаружил Cyrilus. Пока его решение я и взял в качестве тестового. Всем начавшим решать эту задачу время аннулировано. Пусть это, помимо моих извинений, послужит компенсацией морального ущерба. Так что быть в числе первых не всегда плохо :-)

§ Довожу до сведения участников информацию, полученную от хостинг-провайдера:
Значительные задержки в работе нашего сервера связаны с техническими проблемами которые, к сожалению, без остановки сервера решить невозможно. Сама остановка сервера также невозможна (сейчас медленно, но работает). Было принято решение о закупке нового, более надежного и высокоскоростного сервера (на базе Intel Xeon).
Медленная работа сервера будет сказываться еще на протяжении, приблизительно, одной-двух недель (к сожалению, сервер мгновенно нельзя купить и запустить). После этого, по мере переноса данных, нагрузка будет падать и скорость работы сервера значительно возрастет.
Приносим свои извинения за доставленные неудобства.

§ Обновил скрипт базы данных "Аэрофлот". Изменения коснулись имен пассажиров, а также добавлены данные под готовящиеся задачи. Заодно привел в соответствие дату по умолчанию для времени вылета/прилета рейсов. Теперь, как и на сайте, это 1900-01-01. Скачать скрипт можно отсюда: http://msi77.narod.ru/downld.html

§ Естественно, добавление новых задач привело к изменениям в десятке. Я не буду их пока комментировать, все уже очень скоро изменится. Однако хочу отметить один момент. Даже те, кто не претендует на первые места, всегда имеют шанс отметиться в десятке на главной странице сайта и, разумеется в рассылке, если они решат все задачи к моменту появления новых. Чего я всем и желаю.
§ Новые лица в сотне:
ValdemarES (задач 100, время 1.080)
User_Name (97, 2.919)
Goapsy (100, 3.586)
Пока все они сохраняют шансы на место в десятке, а ValdemarES на самое высокое место.
§ Продолжили свое восхождение к вершине:
Нина (95, 9.978)
Lerik79 (97, 15.541)
LEG2005 (108, 22.273)
ruchey (110, 34.015)
SergeyTikh) (110, 5.155)
ogarok_dima (116, 7.649)
Bolschakoff_I_A (118, 45.869)

§ Число подписчиков - 2756

Число участников рейтинга - 4075

Число участников второго этапа - 438

Сертифицировано на сайте - 40

Лучшие результаты (ТОР 20)

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 LastSolved LastVisit
1 >Кувалкин К.С. (Cyrilus) 136 59 20 309 373 5.162 02 Dec 2005 02 Dec 2005
2 >Тарасов Д.Б. (Gavrila) 136 59 20 309 98 10.520 02 Dec 2005 02 Dec 2005
3 >Страшников А.С. (EffEct) 136 59 20 309 201 54.966 02 Dec 2005 02 Dec 2005
4 Духин А. (Shark) 135 137 20 308 30 2.627 10 Aug 2005 02 Dec 2005
5 Зверев Д.Л. (dimzv) 135 137 20 308 643 2.888 08 Aug 2005 23 Nov 2005
6 Голубин Р.С. (Roman S. Golubin) 135 137 20 308 48 6.474 05 Oct 2005 01 Dec 2005
7 Носков Н.В. (niko2) 135 137 20 308 47 7.832 22 Aug 2005 27 Oct 2005
8 Гонтовой В.А. (noname) 135 137 20 308 105 9.797 29 Jun 2005 10 Nov 2005
9 Леденев С.А. (Shurgenz) 135 137 20 308 313 9.865 27 Jun 2005 02 Dec 2005
10 Бураков С.Г. (burakov58) 135 137 20 308 164 12.086 12 Jul 2005 17 Nov 2005
11 Крижевич С.А. (yaff) 135 137 20 308 134 14.297 11 Nov 2005 01 Dec 2005
12 Валуев Д.И. (Fiolent) 135 137 20 308 662 26.569 27 Jun 2005 02 Dec 2005
13 Галиаскаров Э.Г. (Galogen) 135 137 20 308 221 61.425 01 Jul 2005 31 Oct 2005
14 Мельникова И.А. (Iris_m) 135 137 20 308 478 91.738 02 Sep 2005 10 Oct 2005
15 >Войнов П.Е. (pаparome) 136 72 20 307 100 1.652 02 Dec 2005 02 Dec 2005
16 >Абашин П.И. (Dizil) 135 59 20 305 100 3.219 02 Dec 2005 02 Dec 2005
17 Gershovich (VIG) 134 136 20 304 895 13.928 23 Aug 2005 02 Dec 2005
18 Колосов А.С. (KAS) 132 137 20 302 25 3.392 11 Mar 2005 30 Oct 2005
19 Алалыкин В.М. (BOBAH) 133 135 20 301 101 28.217 01 Sep 2005 16 Nov 2005
20 Сныткин В.Л. (Ded I) 132 136 20 300 252 7.365 12 May 2005 16 Nov 2005

Лучшие результаты за неделю

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 >Shilin A.V. (andrysh) 43 65 86 4 90 179 02 Dec 2005
2 Васильев А.С. (a_vasiliev) 40 40 72 13 85 500 01 Dec 2005
3 Telukutla A.R. (Anjaneya) 40 40 72 0 72 880 01 Dec 2005
4 Лебедюк (Лё-ля) 37 37 66 5 71 898 29 Nov 2005
5 >Кириллова А.Д. (SD123) 42 42 61 9 70 911 02 Dec 2005
6 >Taily (Тэйли) 36 36 64 0 64 1000 02 Dec 2005
7 >Самохвалов В. (ValdemarES) 31 100 63 0 63 75 02 Dec 2005
8 >Кунилов А.В. (Shrek) 22 81 50 9 59 128 02 Dec 2005
9 >Семенов А.Н. (morgan) 32 51 59 0 59 688 02 Dec 2005
10 >Berserk (MrBerserk) 34 34 59 0 59 1110 02 Dec 2005
11 Панов С.В. (SerP) 29 36 57 0 57 1006 01 Dec 2005
12 >Yakovlev P.S. (Pavel Yakovlev) 30 30 49 0 49 1326 02 Dec 2005
13 медведев В.О. (vitalym) 17 33 39 8 47 967 02 Dec 2005
14 >Тихонравов С.В. (SergeyTikh) 19 110 45 0 45 57 01 Dec 2005
15 Фонарёва О.А. (Фонарёва Ольга) 21 52 37 8 45 575 30 Nov 2005
16 >Fedoseev (my sql) 21 37 45 0 45 1017 02 Dec 2005
17 >Подлесных С. (serg-p) 11 64 21 23 44 194 02 Dec 2005
18 >Nguyen T. (Thare) 26 26 44 0 44 1449 02 Dec 2005
19 Карнажицкий (ilya_karn) 21 28 42 0 42 1335 26 Nov 2005
20 >Ivanova I.V. (IvanovaIrina) 30 30 41 1 42 1500 02 Dec 2005
21 >Кашеварова А.С. (Кашеварова А.С.) 19 33 41 0 41 1184 02 Dec 2005
22 >Burdin A. (Burdin) 31 31 41 0 41 1522 02 Dec 2005

Изучаем SQL

Управление безопасностью SQL Server средствами Microsoft Access (продолжение, начало в вып.60-63)

Rick Dobson, Ph.D. (оригинал: Managing Microsoft SQL Server Security with Microsoft Access )
Выборочный перевод Леденева С. А.

Открытие проекта ADP

Иногда бывает необходимо из Вашего приложения SQL-DMO программно открыть проект ADP. Технология открытия проекта ADP не требует использования SQL-DMO, однако, Ваше приложение SQL-DMO может использовать преимущество такой возможности. В последнем примере кода этой статьи (прямо перед заключительным разделом) демонстрируется процедура создания нового пользователя. Необходимость открытия ADP проекта основана на генерации строки соединения при установке приложения, основанного на ADP проекте.

Следующий пример кода демонстрирует, как открыть существующий ADP проект. В коде, представленном ниже, именем проекта ADP является msdn_test_security.adp. Пример кода позволяет открыть проект ADP в режиме аутентификации Windows или в режиме аутентификации SQL Server. Снова используется две процедуры. Список параметров в первой процедуре - CallOpenADPWindowsOrSQLServer - относительно большой, что связано с необходимостью указать имя сервера, базу данных, путь и название файла ADP проекта, логин SQL Server и пароль, а также логическую переменную. Логическая переменная определяет открытие проекта с Windows или с SQL Server аутентификацией. При указании Windows аутентификации нет необходимости в логине и пароле, поскольку проект ADP автоматически ссылается на идентификатор пользователя Windows. Вторая процедура использует эти параметры для открытия ADP проекта.

Перед описанием второй процедуры было бы полезным объяснить некоторые особенности кода. Во-первых, процедура, открывающая проект ADP уже работает в сессии Access. Поэтому необходимо создать новый экземпляр Access для проекта, который мы намерены открыть. Для создания сессии Access используется OLE класс.

Во-вторых, любой существующий проект ADP всегда открывается с сохраненными во время предыдущего открытия параметрами соединения с сервером. Поэтому программа должна открыть проект, используя старые параметры подключения, а потом эти параметры сменить. Новые параметры подключения можно назначить только открытому проекту. После закрытия проекта новые параметры соединения сохраняются, пока пользователь не изменит их в диалоге Параметры соединения. (Однако объектная модель офиса позволяет Вам скрыть и сделать недоступной команду меню Соединение в меню Файл).

В-третьих, сессия с открытым проектом ADP будет жить, пока живет переменная, представляющая эту сессию. Используйте описание Public в определении сессии для открываемого проекта. Объявляется переменная в разделе описаний модуля. Это позволит сессии жить, пока живет открывающий ее проект, то есть наш код. Для переменной сессии Access в примере используется имя appAccess, и следующее объявление в разделе описаний стандартного модуля. Поскольку объявление должно быть в верхней части модуля, Вы его не увидите в коде ни для первой, ни для второй процедуры.

Public appAccess as Access.Application

Вторая процедура - OpenADPWindowsOrSQLServer - начинается выводом сообщения, спрашивающим оставить ли сессию открытой после завершения процедуры. Если пользователь ответит "нет", процедура установит параметры соединения для проекта, а затем закроет сессию без шанса посмотреть изменения. Далее проект запускает новую сессию Access при помощи функции CreateObject. Аргументы этой функции различаются в зависимости от версии Access, которую Вы используете (в коде описаны особенности использования версий Access 2000 или Access 2002). После создания сессии для проекта процедура вызывает метод OpenAccessProject для добавления проекта ADP в сессию. Аргументом для этого метода служит путь вместе с именем файла проекта. Расширение .adp опционально. После открытия проекта процедура переопределяет его параметры соединения при помощи метода OpenConnection объекта CurrentProject. Процедура переопределяет соединения, используя две различные строки соединения в зависимости от значения переменной bolWindowsLogin. Эта Логическая переменная устанавливается первой процедурой для указания того, какой тип авторизации требуется установить для проекта. На последнем шаге процедуры сессия закрывается, если пользователь ответил положительно на вопрос в окне сообщения перед открытием сессии.

Sub CallOpenADPWindowsOrSQLServer()
    Dim srvname As String
     Dim dbname As String
     Dim prpath As String
     Dim prname As String
     Dim suid As String
     Dim pwd As String
     Dim bolWindowsLogin As Boolean

     'Установка параметров для открытия проекта ADP
     srvname = "YOUR_SERVER_NAME"
     dbname = "Your_db_name"
     prpath = "Path_to_project_file"
     prname = "msdn_security_test"
     suid = "your_login_name"
     pwd = "your_password"

     'Этот аргумент контролирует использование логина Windows
     'для текущего пользователя вместо логина и пароля SQL сервера
     bolWindowsLogin = False

     'Вызов процедуры открытия проекта ADP prname
     'c Windows или SQL Server аутентификацией
     OpenADPWindowsOrSQLServer srvname, dbname, _
     prpath, prname, suid, pwd, bolWindowsLogin
End Sub
Sub OpenADPWindowsOrSQLServer(srvname As String, dbname As String, _
     prpath As String, prname As String, _
     suid As String, pwd As String, bolWindowsLogin As Boolean)

     Dim bolLeaveOpen As Boolean
     Dim strPrFilePath As String
     Dim sConnectionString As String

     'Оставить проект открытым после завершения работы процедуры?
     If MsgBox("Хотите ли Вы оставить проект открытым?", vbYesNo) = vbYes Then
         bolLeaveOpen = True
     End If
    
     'Определение объекта сессии Access (используйте .9 для Access 2000
     'и .10 для Access 2002)
     Set appAccess = CreateObject("Access.Application.9")

     'Открываем проект с логином и паролем последнего запуска
     'и показываем его
     strPrFilePath = prpath & prname
     appAccess.OpenAccessProject strPrFilePath
     appAccess.Visible = True

     'Устанавливаем новый логин для Windows или SQL Server аутентификации;
     'и обрабатываем ошибку попытки подключения неверным способом
     If bolWindowsLogin Then
         appAccess.CurrentProject.OpenConnection _
             "PROVIDER=SQLOLEDB.1;INTEGRATED SECURITY=SSPI;" & _
         "PERSIST SECURITY INFO=FALSE;INITIAL CATALOG=" & _
             dbname & ";DATA SOURCE=" & srvname
     Else
         sConnectionString = "PROVIDER=SQLOLEDB.1;INITIAL CATALOG=" & _
         dbname & ";DATA SOURCE=" & srvname
         appAccess.CurrentProject.OpenConnection _
         sConnectionString, _
         suid, pwd
     End If

     'Закрываем сессию, или останавливаемся
     'для просмотра диалога Параметров соединения
     If bolLeaveOpen = False Then
         appAccess.CloseCurrentDatabase
         Set appAccess = Nothing
     End If

End Sub

(Окончание следует...)

Контакты

По всем вопросам, связанным с функционированием сайта, проблемами при решении упражнений, идеями вы можете обращаться к Сергею И.Моисеенко msi77@yandex.ru. Вы также можете предложить свои задачи для публикации на сайте.

Подписка Subscribe.Ru
Новости сайта "Упражнения по SQL"

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.db.sqlex
Архив рассылки
Отписаться
Вспомнить пароль

В избранное