Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: запрос из Delphi в MS SQL Server  (Прочитано 21521 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Riddik
Гость
« : 20-02-2008 08:14 » 

Приветствую!


Есть сервер на MS SQL Server.

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

Выглядеть всё должно так: на пк пользователе находится Delphi-приложение, в котором  есть незаполненные таблицы, (таблицы сделаны в MS Access подключены в Delphi через ADO). При нажатии на button приложение должно "влезть"  на серевер и заполнить соответсвующими данными все таблицы на пк пользователе, чтобы в дальнейшем пользователь уже на своём ПК, а не в базе сервера, мог редактировать и выводить нужные таблицы.


Проблема: что мне нужно почитать, поучить, прошу направить, чтобы это осуществить?

Пока что я разработал просто Delphi приложение и подключил через ADO нужные таблицы, сделанные в Access'е. (см вложения)

SQL  свосем не знаю, подскажите пожалуйста, что поучить, чтобы осуществить описанное выше. Весь SQL мне не нужен.

Какую информацию мне запросить у тех, что разрабатывает MS SQL Server, с которого моё приложение будет "барть" данные и заполнять таблцы? и т.д.

« Последнее редактирование: 03-08-2008 18:41 от Алексей1153++ » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 20-02-2008 08:38 » 

Riddik, не верной дорогой идете товарисч.
Это ж какой нормальный!  админ высветит свой sql сервер в мир?


Что может отдать (какие данные) sql сервер, какой протокол используется?
на мой взгляд, оптимальный вариант - xml

реально это может выглядеть так:
твое приложение посылает запрос "серверу приложений" на синхронизацию данных.
Сервер приложений принимает запрос и обрабатывает его
И отдает его приложению
В каком формате отдает - это тебе должны сказать разработчики "сервера приложений". Они же должны сказать какой "запрос на синхронизацию" ты должен им слать.


Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
zubr
Гость
« Ответ #2 : 20-02-2008 10:36 » 

Если объем запрашиваемых данных (имеется в виду количество получаемых записей) небольшой, то схема может быть простая:
1. Создал запрос на сервер через ADODataSet или ADOQuery.
2. Пошагово перемещаясь в ADODataSet с полученным запросом, заполняешь таблицы Access
Цитата
Какую информацию мне запросить у тех, что разрабатывает MS SQL Server, с которого моё приложение будет "барть" данные и заполнять таблцы? и т.д.
1. Структуру таблиц (название, поля, типы полей)
2. Параметры подключения: IP, логин, пароль

По поводу SQL в сети можно найти книгу "Понимание SQL" - это перевод книги Мартин Грубер "Understanding SQL"
Записан
Riddik
Гость
« Ответ #3 : 20-02-2008 12:08 » 

zubr, благодарю! Найду книгу и почитаю!

Sla, спасибо! Ну, насчёт "сервера в мир" - не я такие условия придумал, так разрабы сервера делают. Локальной сети нет и вряд ли будет, потому Интернет.

Что может отдать (какие данные) sql сервер, какой протокол используется?
на мой взгляд, оптимальный вариант - xml

Это я у них уточню обязательно.


Итак, спасибо большое за помощь, пока поучу как запросы делать и т.д и там, чувствую, ещё вопросы появятся. Поэтомк прошу администрацию пока не удалять этот топ, если можно.
« Последнее редактирование: 20-02-2008 12:14 от Riddik » Записан
Riddik
Гость
« Ответ #4 : 20-02-2008 12:20 » 

zubr, книгу уже нашёл, скачал - спасибо!
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 20-02-2008 12:46 » 

Riddik, я фразу свою зачеркнул, потому что понял, что есть сервер приложений, а за ним находится сервер sql и всю логику работы с базой берет именно сервер приложений. Это более безопасный путь и решение, чем с смотрящим в мир сервером.
т.е. логика работы такая (повторюсь)
1. твоя софтина посылает серверу "запрос" на синхронизацию,  при этом запрос может выглядеть как угодно, и содержать что угодно, главное, чтобы сервер приложений провел авторизацию и смог разобрать запрос.
2. сервер приложений формирует sql запрос к серверу  sql  и получает от последнего результат запроса.
3. сервер приложений отдает твой софтине результат выполненного "запроса"

4. Запросы на синхронизацию могут быть разные:
а) получить все данные....(как сам понимаешь это может быть много)
б) получить данные только из одной таблицы
в) получить только актуальные данные (этот алгоритм должен быть решен как на клиентской части, так и на серверной). серверная часть должна пометить, что этот блок данных уже передавался и не менялся со времени последнего запроса

5. Запросы на передачу данных от клиентской базы в удаленную (ведь для чего-то существует клиентская база, не только для удаленной копии, но и для работы)

6. можно придумать
7. можно придумать
8. можно придумать
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 20-02-2008 17:18 » 

Что может отдать (какие данные) sql сервер, какой протокол используется?
на мой взгляд, оптимальный вариант - xml
XML тут не протокол, а формат. Протокол будет TCP/IP. Но! Есть возможность связать IIS и SQL Server. Тогда, если я не ошибаюсь, возможен и более высокоуровневый HTTP (в частности для передачи XML).
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Riddik
Гость
« Ответ #7 : 29-02-2008 11:52 » 

Кое-что изменилось.

в общем, сервак "в мир" не будет.

Теперь мне надо разработать два приложение. На сервер - для доступ к базе, и клиентскую.

Я собираюсь делать так: на сервере моя прога по команде клиентской части будет собирать нужные данные и заполнять таблицы (две таблицы Access), которые будут в ней же, в серверной проге. И после заполнения отправляет через web на комп клиента. Правильно ля я всё решил?


Так вот, прошу помочь - я не знаю, как должно выглядеть приложение на сервере, оно должно быть запущено всегда или как? Пользовательский интерфейс ей не нужен, всё будет управляться с клиента?

Т.е. клиент запускает клиенсткую программу на своём компьютере, жмёт команду "заполнить таблицы", клиентская программа через web запускает приложение на сервере, это приложение sql запросами заполняет таблицы и отрпавляет клиенту. Так?

Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 29-02-2008 12:20 » 

Riddik, правильно мыслишь
Тебе нужно реализовать два приложения
Клиентская часть - отправляет запросы и обрабатывает ответы
Серверная часть принимает запросы и отправляет ответы.
Реализация серверной части может быть разная.
- непосредственно сервер, слушающий определенный порт
- стандартный http сервер.

Клиентская часть
В случае своего сервера, ее функциональность может быть облегченного варианта (запрос, ожидания ответа) (протокол придумывается тобой)
В случае "чужого" сервера - полная (или частичная) реализация http протокола, как например.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Riddik
Гость
« Ответ #9 : 29-02-2008 12:50 » 

Sla, спасибо!

стандартный http сервер пишется на html? и выглядет как страница?
 я ничего оне знаю про реализацию среверной части, как мне это сделать? просто html-скрипт, который запускается на сервере по команде клиента? И всё общение только sql-запросами? (база-прилож.сервер-прилож.клиент)
Куда воткнуть  Accessовские таблицы, которые надо заполнить? Пускай остаются в клиентской программе Delphi, чьи скрины я привёл в начале темы?

А на Delphi нельзя сделать серверную часть?
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 29-02-2008 13:05 » 

html - это язык верстки (оформления)
Стандартный сервер, например apache (портирован под все ОС), или же IIS (учитывая наличия MS SQL Server)
Серверные скрипты можно писать на для апача, наприме, php, perl, phyton, для IIS - asp.

Что могу посоветовать. Развернуть на тестовом "сервере" MSDE200 в качестве SQLсервера, денвер(пакет апач+пхп+mysql), доставить библиотеки для работы с mssql, ну... и приступить к выполнению задания
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 29-02-2008 13:15 » 

на дельфи можно реализовать серверную часть, даже почти уверен, что в сети свободно можно найти реализацию http сервера.

Общение между приложением и сервером на уровне http запросов, например используя методы POST и GET
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Riddik
Гость
« Ответ #12 : 29-02-2008 13:15 » 

А как тестовый сервер организовать на одном компе? Чтобы делать пытки-попытки, проверять?
Тысячу извинений, но я не знаю что такое MSDE200, денвер, как доставить библиотеки для работы с mssql... и как со всем этим работать прошу помочь. Как это состыковывать с моим Delphi-приложением или забыть про него?
Где почитать, ка на дельфи реализовать серверную часть?
« Последнее редактирование: 03-08-2008 18:39 от Алексей1153++ » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 29-02-2008 13:33 » 

Что я понимаю под тестовым сервером. Любая машинка под XP  с памятью не меньше 512МБ.
MSDE200 - Microsoft SQL Server 2000 (у него вреде нету проблем с лицензионностью, не хочу утверждать)
денвер - www.denwer.ru

Зачем это надо? чтоб не зависеть от внешнего сервера.

Немного почитать про пхп и работу с пхп и баз
Отладить серверную часть - достаточно легко - написанием простых страничек.

И продолжить разработку клиентского приложения, изучая http.

ps интернет шелеком не заканчивается Улыбаюсь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Riddik
Гость
« Ответ #14 : 29-02-2008 15:46 » new

Спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines