Рейтинговые книги
Читем онлайн Обработка баз данных на Visual Basic®.NET - Джеффри Мак-Манус

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 62 63 64 65 66 67 68 69 70 ... 88

Итак, попробуем создать один командный файл, чтобы автоматически запустить все сценарии для создания совершенно новой версии базы данных Novelty на другом компьютере. Хотя новая версия базы данных будет иметь собственные данные о клиентах, сотрудниках и заказах, данные о товарах в таблице tblInventory будут одинаковыми. Для этого в новой базе данных нужно наполнить таблицу tblInventory данными о товарах из уже существующей таблицы tblInventory.

Чтобы создать командный файл загрузки данных о товарах из существующей базы данных в новую, необходимо сначала экспортировать данные, а затем продолжить процесс создания командного файла.

1. В окне Server Explorer щелкните правой кнопкой мыши на таблице tblInventory и выберите в контекстном меню команду Export Data (Экспорт данных).

2. В диалоговом окне Browse for Folder выберите предлагаемую по умолчанию папку Create Scripts проекта базы данных и щелкните на кнопке OK.

3. После регистрации в диалоговом окне SQL Server Login будет создан файл dbo.tblInventory.dat.

4. Выберите папку в проекте базы данных для сохранения нового командного файла. В данном примере для этого используется предлагаемая по умолчанию папка Create Scripts.

5. В окне Solution Explorer щелкните правой кнопкой мыши на папке Create Scripts и выберите в контекстном меню команду Create Command File (Создать командный файл). На экране появится диалоговое окно Create Command File (рис. 8.11).

Рис. 8.11. Диалоговое окно Create Command File для базы данных Novelty

6. В списке Available Scripts (Доступные сценарии) в диалоговом окне Create Command File перечислены все сценарии SQL в выбранной папке, которые можно включить в командный файл. В список Scripts to be added to the command file (Сценарии, включаемые в командный файл) можно вставить все или только некоторые сценарии. Для включения всех сценариев щелкните на кнопке Add Аll (Включить все).

7. Поскольку в списке сценариев находится по крайней мере один сценарий экспорта данных с расширением. tab, в диалоговом окне Create Command File станет активной кнопка Add Data (Включить данные).

8. Щелкните на кнопке Add Data, и на экране отобразится одноименное диалоговое окно (рис. 8.12). В этом окне перечислены все выбранные сценарии создания таблиц и соответствующие им файлы данных. 

РИС. 8.12. Диалоговое окно Add Data

9. В этом примере автоматически задается соответствие между файлом данных dbo.Inventory.dat и сценарием dbo.Inventory.tab. Для возвращения в диалоговое окно Create Command File щелкните на кнопке OK.

10. После указания сценариев и файлов данных щелкните на кнопке OK для создания командного файла. В результате этого в папке Create Scripts появится файл Create Scripts.cmd, содержимое которого показано в листинге 8.1.

ЛИСТИНГ 8.1. Содержимое командного файла Create Scripts.cmd

@echo off

REM: Command File Created by Microsoft Visual Database Tools

REM: Date Generated: 8/29/2002

REM: Authentication type: Windows NT

REM: Usage: CommandFilename [Server] [Database]

if '%1' == '' goto usage

if '%2' == '' goto usage

if '%1' == '/?' goto usage

if '%1' == '-?' goto usage

if '%1' == '?' goto usage

if '%1' == '/help' goto usage

osql -S %1 -d Master -E -b -i "JACKIE-TECRA.Novelty.DBS"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d Master -E -b -i "Novelty.DBS"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblCustomer.tab"

if %ERRORLEVEL% NEQ 0 goto errors

bcp "%2.dbo.tblCustomer" in "dbo.tblCustomer.dat" -S %1 -T -k -n – q

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 %2 E -b -i "dbo.tblDepartment.tab"

if %ERRORLEVEL% NEQ 0 goto errors

bcp "%2.dbo.tblDepartment" in "dbo.tblDepartment.dat" -S %1 – Т -k – n – q

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 – d %2 – E -b -i "dbo.tblEmployee.tab"

if %ERRORLEVEL% NEQ 0 goto errors

bcp "%2.dbo.tblEmployee" in "dbo.tblEmployee.dat" – S %1 – Т -k – n -q

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblInventory.tab"

if %ERRORLEVEL% NEQ 0 goto errors

bcp "%2.dbo.tblInventory" in "dbo.tblInventory.dat" -S %1 -Т -k

if %ERRORLEVEL% NEQ 0 goto errors

osql – S %1 – d %2 – E – b -i "dbo.tblOrder.tab"

if %ERRORLEVEL% NEQ 0 goto errors

bcp "%2.dbo.tblOrder" in "dbo.tblOrder.dat" -S %1 -T -k -n -q

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblOrderItem.tab"

if %ERRORLEVEL% NEQ 0 goto errors

bcp "%2.dbo.tblOrderItem" in "dbo.tblOrderItem.dat" -S %1 -T -k -n -q

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblRegion.tab"

if %ERRORLEVEL% NEQ 0 goto errors

bcp "%2.dbo.tblRegion" in "dbo.tblRegion.dat" -S %1 -T -k -n -q

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblCustomer.kci"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblDepartment.kci"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblEmployee.kci"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tbllnventory.kci"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblOrder.kci"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblOrderItem.kci"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblRegion.kci"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblCustomer.fky"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblDepartment.fky"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblEmployee.fky"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblInventory.fky"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblOrder.fky"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblOrderItem.fky"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblRegion.fky"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblCustomer.ext"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblDepartment.ext"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblEmployee.ext"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblInventory.ext"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblOrder.ext"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblOrderItem.ext"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.tblRegion.ext"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.EmployeeDepartment_view.viw"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.qryEmployee_view.viw"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.DeleteEmployee.prc"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.GetCustomerFromID.prc"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.InsertEmployee.prc"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.LastNameLookup.prc"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.procEmployeesSorted.prc"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.SelectEmployees.prc"

if %ERRORLEVEL% NEQ 0 goto errors

osql -S %1 -d %2 -E -b -i "dbo.UpdateEmployee.prc"

if %ERRORLEVEL% NEQ 0 goto errors

goto finish

REM: How to use screen

:usage

echo.

echo Usage: MyScript Server Database

echo Server: the name of the target SQL Server

echo Database: the name of the target database

echo.

echo Example: MyScript.cmd MainServer MainDatabase

echo.

echo.

goto done

REM: error handler

:errors

echo.

echo WARNING! Error(s) were detected!

echo____________________

echo Please evaluate the situation and, if needed,

echo restart this command file. You may need to

echo supply command parameters when executing

echo this command file.

echo.

pause

goto done

REM: finished execution

:finish

echo.

echo Script execution is complete!

:done

@echo on

НА ЗАМЕТКУ

В данном командном файле используются утилиты командной строки osql и bcp которые входят в состав SQL Server. Утилита osql предназначена для выполнения команд SQL, системных процедур и сценариев, а утилита bcp — для пакетного копирования данных в файл данных из SQL Server и обратно.

Данный командный файл можно запустить в окне Solution Explorer, щелкнув на нем правой кнопкой мыши и выбрав в контекстном меню команду Run. Его также можно выполнить извне, независимо от Visual Studio .NET, аналогично другим командным файлам.

СОВЕТ

Учтите, что при запуске данного командного файла по отношению к базе данных в ней будут удалены все данные!

Запросы

Аналогично сценариям создания и изменения, с помощью Visual Studio .NET можно генерировать запросы. За исключением тривиальных запросов, конструктор запросов с графическим пользовательским интерфейсом позволяет более эффективно и безошибочно создавать самые сложные запросы.

Далее работа в режиме конструктора запросов демонстрируется на примере создания параметрического запроса на обновление, который обновляет оптовые цены всех товаров на складе на указанную в процентах величину.

РИС. 8.13. Режим конструктора запросов с диалоговым окном Add Table

1. Откройте окно Solution Explorer и щелкните правой кнопкой мыши на любой папке, за исключением Database References. В контекстном меню выберите команду Add Query (Создать запрос), и на экране отобразится диалоговое окно Add New Item (Создать новый объект), показанное на рис. 8.2.

1 ... 62 63 64 65 66 67 68 69 70 ... 88
На этой странице вы можете бесплатно читать книгу Обработка баз данных на Visual Basic®.NET - Джеффри Мак-Манус бесплатно.

Оставить комментарий