powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / БД и Builder
19 сообщений из 19, страница 1 из 1
БД и Builder
    #34541870
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу на C++ Builder 6.0 небольшую информационную систему. Сервер через ADO читает таблицу.
Если бы там же был компонент TDBGrid, то связав их через TDataSource без проблем увидели бы табличку. Но Отображать ее надо на клиенте. С билдером работал мало, кто с подобным сталкивался - подскажите? Как оптимально передать таблицу? Коннет через сокет. Там вроде есть компонент "сетка", неужели мне надо 2 вложенных цикла по таблице, и пакетами передавать значения ячеек как строки? Нельзя ли как-то сгенерить у клиента копию таблицы? Хотя бы отображение как-то упростить.. выравнивания всякие...
...
Рейтинг: 0 / 0
БД и Builder
    #34541967
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceПишу на C++ Builder 6.0 небольшую информационную систему. Зачем так сложно ? Или так в ТЗ ?
...
Рейтинг: 0 / 0
БД и Builder
    #34541990
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это вообще учебный проект)) но должно быть подобие информационной системы. Поэтому я решил сделать клиент-серверное приложение. Но хадача передать таблицу по сети - по сути то не сложная! Неохота ее решать в лоб, наверняка в билдере есть что-то готовое для этого. Т.е. Если бы вам нужно было отображать содержимое таблицы на клиенте, а сама таблица лежит у сервера - как бы вы поступили?
...
Рейтинг: 0 / 0
БД и Builder
    #34542070
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю вам нужно почитать теорию и определиться, что же вы хотите.
Особенно понравилось
TopSpaceа сама таблица лежит у сервера
По теме: я бы подключался из клиентской программы напрямую к серверу БД. Передавать данные по сети - это забота библиотеки доступа к БД. Ну а на клиенте DataSet, DataSource, DBGrid.
...
Рейтинг: 0 / 0
БД и Builder
    #34542117
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
База на Access)) Поэтому доступ только через серверную часть.
...
Рейтинг: 0 / 0
БД и Builder
    #34543990
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceБаза на Access)) Поэтому доступ только через серверную часть.
Та ладна! потратил 3 минуты и прицепился через АДО к аксесной БД через ОДБС - не нужен сервер для этого никакой ))
Но, несомненно! велосипед должен быть изобретён )))
...
Рейтинг: 0 / 0
БД и Builder
    #34544194
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я и потратил 3 минуты! Но приложение-то клиент-серверное!! Сервер прочитал таблицу, ее как-то надо передать клиенту! Тут иначе никак. Клиент обладает избирательным и опосредованным доступом к БД. Все запросы хранятся на сервере (не сервере БД, а сервере приложения этого). Клиент подает например номер операции 1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
struct NetPackage
{
    int       OpCode;
    char *  Data;
};

char * Buf[ 100 ];
NetPackage * np = (NetPackage*)Buf;
np->OpCode       =  1 ;                          //add new pacient
strcpy(np->Data, "Ivanov I.I. 30 M");
sendLength = strlen(np->Data) +  4 ;
tcpClientSocket->SendBuffer(Buf, sendLength);
Сервер подставляет параметр полученный в запрос INSERT INTO и запись добавлена. Т.е. клиент - просто никто, на уровне sql вообще не работает.
Но фишка в том, что клиент взял и запросил таблицу "Пациенты". И ее надо грамотно:
1) передать
2) отобразить (самое сложное!)
КАК это обычно делают в билдере?
...
Рейтинг: 0 / 0
БД и Builder
    #34544221
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы может озвучите первоначальное задание ?
А то не покидает ощущение, что вы придумываете проблему на пустом месте.
Вам нужна трехзвенка ?
Или клиент-сервер ?
Возмите нормальную СУБД, например Firebird.
...
Рейтинг: 0 / 0
БД и Builder
    #34544242
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Первоначальное задание: разработать медицинскую информационную систему, автоматизирующую работу больничного отделения. Набор таблиц и несколько видов операций, как "добавить пациента", "назначить пациенту лекарство", "выписть пациента" и т.п. Пример учебный, надо чтобы это смотрелось более-менее нормально. Написать надо очень быстро (1-2дня). Чтобы все не было совсем тривиально, выбрал клиент-серверную архитектуру. На одном компе стоит серверная часть и сама БД. На нескольких других компах - клиентские терминалы.
...
Рейтинг: 0 / 0
БД и Builder
    #34544292
AsPiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceЧтобы все не было совсем тривиально, выбрал клиент-серверную архитектуру. На одном компе стоит серверная часть и сама БД. На нескольких других компах - клиентские терминалы.То что ты выбрал называется трёхзвёнкой:)
На струя она в этой несложной задачке???
...
Рейтинг: 0 / 0
БД и Builder
    #34547273
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, складывается впечатление, что все только изучают архитектуру по книжкам и никто не работал с таблицами в билдере:) Можно более конкретные советы, по реализации? 3-х звенка выбрана для возможноси последующего масштабирования. Набор операций с БД строго конкретен и регламентирован логикой работы этой ИС, именно поэтому клиент напрямую не делает запрос к серверу БД по сети, он только посылает код операции, а серверная часть ее обрабатывает. Почему не на FireBird или InerBase - время, я через ADO коннект сделал минут за 5. Так проще.
...
Рейтинг: 0 / 0
БД и Builder
    #34547313
AsPiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceИзвините, складывается впечатление, что все только изучают архитектуру по книжкам и никто не работал с таблицами в билдере:)Куда уж нам?

TopSpaceМожно более конкретные советы, по реализации? Вы его уже получили !


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

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

TopSpaceПочему не на FireBird или InerBase - время, я через ADO коннект сделал минут за 5. Так проще."Если нужер черт, то и иди к черту" (с) Гоголь.
Нужен клиент-сервер? Используй его на здоровье! Не любишь FireBird/InterBase - возьми, например, MSSQL/MSDE и ходи к нему через ADO...
...
Рейтинг: 0 / 0
БД и Builder
    #34547351
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну так какой бы вы подход избрали? Например
...
Рейтинг: 0 / 0
БД и Builder
    #34547359
AsPiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceНу так какой бы вы подход избрали? НапримерБез подробного анализа предметной области - "на вскидку" выбрал бы FireBird. Но если Вы поясните "пределы массштабирования" (сколько предполагается одновременно работающих пользователей? Каков предполагаемый объём БД? И т.п.), то можно и более обоснованный выбор сделать:)
...
Рейтинг: 0 / 0
БД и Builder
    #34547626
VladimirP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помещаешь на форму
TADOConnection TADOQuery TDataSource и TDBGrid
все это связываешь
в TADOQuery пишешь SQL запрос
в TDBGrid появятся столбцы, соответствующие полученной таблице.
И работай, как с таблицей
...
Рейтинг: 0 / 0
БД и Builder
    #34547972
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladimirPПомещаешь на форму
TADOConnection TADOQuery TDataSource и TDBGrid
все это связываешь
в TADOQuery пишешь SQL запрос
в TDBGrid появятся столбцы, соответствующие полученной таблице.
И работай, как с таблицей
Это-то я понимаю, но коннекшн и грид не в одной программе! Один в серверной части, другой в клиентской. КАК ИХ МОЖНО СВЯЗАТЬ - ВОТ В ЧЕМ СОКРОВЕННЫЙ СМЫСЛ СЕГО ПОСТА!!
...
Рейтинг: 0 / 0
БД и Builder
    #34547985
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirPПомещаешь на форму
TADOConnection TADOQuery TDataSource и TDBGrid
все это связываешь
в TADOQuery пишешь SQL запрос
в TDBGrid появятся столбцы, соответствующие полученной таблице.
И работай, как с таблицейЭто слишком просто. Автор хочет, как я понял, примерно так:

DataBase <-> (TADOConnection TADOQuery ) <-- TCP/IP --> ( TClientDataSet TDataSource TDBGrid)

И его интересует
TopSpaceКак оптимально передать таблицу? Коннет через сокет.
Я с трехзвенками никогда не работал, может по-этому у меня сразу возникают вопросы: а если несколько человек одновременно захотят поработать, как отреагирует среднее звено ? А по какому протоколу будут общаться клиент и среднее звено ?
...
Рейтинг: 0 / 0
БД и Builder
    #34548060
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serik Akhmetov
DataBase <-> (TADOConnection TADOQuery ) <-- TCP/IP --> ( TClientDataSet TDataSource TDBGrid)

Именно так:)
Протокол? Ну там же есть пара TCPCLientSockect/TCPServerSockect, через них. Протокол наверно такой: клиент посылает код запроса, сервер возвращает таблицу посылками, например я поылка = 1 ячейке. Про многозадачность/поточность/и т.п. - не беспокойтесь, с этим вопросов нет. Могу каждый коннект деражть в своем потоке и завести мьютекс на право запроса. Медленно, но здесь этого хватит.
...
Рейтинг: 0 / 0
БД и Builder
    #34548408
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace Протокол? Ну там же есть пара TCPCLientSockect/TCPServerSockect, через них.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Модель OSI

    1 . физический уровень
    2 . канальный уровень
    3 . сетевой уровень
    4 . транспортынй уровень
    5 . сеансовый уровень
    6 . уровень представления
    7 . прикладной уровень 
TCP - это 4 уровень. А я говорю о 7.

TopSpace Как оптимально передать таблицу?И вы наверно об этом же ?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / БД и Builder
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]