Каков формат строки подключения ASP.NET для связанного сервера?

Некоторые из обучаемых я нашел, которые легко понять:

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

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

blockquote>

Сценарий:
// find out how many rows are in the table 
$sql = "SELECT COUNT(*) FROM numbers";
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);
$r = mysql_fetch_row($result);
$numrows = $r[0];

// number of rows to show per page
$rowsperpage = 10;
// find out total pages
$totalpages = ceil($numrows / $rowsperpage);

// get the current page or set a default
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
   // cast var as int
   $currentpage = (int) $_GET['currentpage'];
} else {
   // default page num
   $currentpage = 1;
} // end if

// if current page is greater than total pages...
if ($currentpage > $totalpages) {
   // set current page to last page
   $currentpage = $totalpages;
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
   // set current page to first page
   $currentpage = 1;
} // end if

// the offset of the list, based on current page 
$offset = ($currentpage - 1) * $rowsperpage;

// get the info from the db 
$sql = "SELECT id, number FROM numbers LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);

// while there are rows to be fetched...
while ($list = mysql_fetch_assoc($result)) {
   // echo data
   echo $list['id'] . " : " . $list['number'] . "
"; } // end while /****** build the pagination links ******/ // range of num links to show $range = 3; // if not on page 1, don't show back links if ($currentpage > 1) { // show << link to go back to page 1 echo " << "; // get previous page num $prevpage = $currentpage - 1; // show < link to go back to 1 page echo " < "; } // end if // loop to show links to range of pages around current page for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) { // if it's a valid page number... if (($x > 0) && ($x <= $totalpages)) { // if we're on current page... if ($x == $currentpage) { // 'highlight' it but don't make a link echo " [$x] "; // if not current page... } else { // make it a link echo " $x "; } // end else } // end if } // end for // if not on last page, show forward and last page links if ($currentpage != $totalpages) { // get next page $nextpage = $currentpage + 1; // echo forward link for next page echo " > "; // echo forward link for lastpage echo " >> "; } // end if /****** end build pagination links ******/ ?>

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

blockquote>

5
задан J Wynia 20 August 2008 в 15:03
поделиться

4 ответа

Я не полагаю, что можно получить доступ к связанному серверу непосредственно из приложения без синтаксиса OpenQuery. В зависимости от сложности Вашей схемы могло бы иметь смысл писать стандартную программу или sproc для заполнения базы данных подготовки с данными из живой базы данных.

Вы могли бы также считать рассмотрение Redgates Генератором Данных SQL или любым другим генералом данных инструмент. Redgates довольно прост в использовании.

Еще одна идея - можно ли получить резервное копирование живой базы данных, которую можно установить в разработке, чтобы сделать тестирование? Если его справедливые данные для разработки и тестирования, которое Вы ищете, Вы, вероятно, хотят избегать соединения с Вашей производственной базой данных вообще.

2
ответ дан 15 December 2019 в 01:16
поделиться

Создайте хранимые процедуры тестирования на сервере B что ссылка данные по серверу через связанный сервер. например, если Ваши регулярные sproc ссылки таблица на Сервере B говорят:

databaseA.dbo.tableName

затем используйте связанное имя сервера для ссылки на ту же базу данных/таблицу по серверу A:

linkedServerName.databaseA.dbo.tableName

Если сервер A идентичен в его базе данных/таблице/именах столбцов, чем Вы сможете сделать это некоторым быстрым поиском / работа замены.

2
ответ дан 15 December 2019 в 01:16
поделиться

создание связанного сервера от.NET не имеет никакого смысла, так как связанный сервер является только соединением с одного sqlserver на другой сервер (sql, файл, Excel, sybase и т.д. и т.д.), в сущности это - просто строка подключения (можно явиться олицетворением и сделать некоторый другой материал при создании связанного сервера).

0
ответ дан 15 December 2019 в 01:16
поделиться

Один из способов - создать две строки подключения и при необходимости обратиться к соответствующей базе данных. Второй вариант - создать соединение только для базы данных A и создать сервер ссылок для базы данных B в базе данных. Хорошая статья, мне она очень нравится. Я немного занимаюсь исследованием соединения Asp.net и обнаружил, что макротестирование www.macrotesting.com также является очень хорошим источником. Спасибо за статью .....

С уважением ... Меганатан .Дж

0
ответ дан 15 December 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: