|
|
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
Пишу на C++ Builder 6.0 небольшую информационную систему. Сервер через ADO читает таблицу. Если бы там же был компонент TDBGrid, то связав их через TDataSource без проблем увидели бы табличку. Но Отображать ее надо на клиенте. С билдером работал мало, кто с подобным сталкивался - подскажите? Как оптимально передать таблицу? Коннет через сокет. Там вроде есть компонент "сетка", неужели мне надо 2 вложенных цикла по таблице, и пакетами передавать значения ячеек как строки? Нельзя ли как-то сгенерить у клиента копию таблицы? Хотя бы отображение как-то упростить.. выравнивания всякие... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 12:23 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
TopSpaceПишу на C++ Builder 6.0 небольшую информационную систему. Зачем так сложно ? Или так в ТЗ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 12:45 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
Это вообще учебный проект)) но должно быть подобие информационной системы. Поэтому я решил сделать клиент-серверное приложение. Но хадача передать таблицу по сети - по сути то не сложная! Неохота ее решать в лоб, наверняка в билдере есть что-то готовое для этого. Т.е. Если бы вам нужно было отображать содержимое таблицы на клиенте, а сама таблица лежит у сервера - как бы вы поступили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 12:53 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
Я думаю вам нужно почитать теорию и определиться, что же вы хотите. Особенно понравилось TopSpaceа сама таблица лежит у сервера По теме: я бы подключался из клиентской программы напрямую к серверу БД. Передавать данные по сети - это забота библиотеки доступа к БД. Ну а на клиенте DataSet, DataSource, DBGrid. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 13:12 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
База на Access)) Поэтому доступ только через серверную часть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 13:27 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
TopSpaceБаза на Access)) Поэтому доступ только через серверную часть. Та ладна! потратил 3 минуты и прицепился через АДО к аксесной БД через ОДБС - не нужен сервер для этого никакой )) Но, несомненно! велосипед должен быть изобретён ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 23:09 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
Я и потратил 3 минуты! Но приложение-то клиент-серверное!! Сервер прочитал таблицу, ее как-то надо передать клиенту! Тут иначе никак. Клиент обладает избирательным и опосредованным доступом к БД. Все запросы хранятся на сервере (не сервере БД, а сервере приложения этого). Клиент подает например номер операции 1 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Но фишка в том, что клиент взял и запросил таблицу "Пациенты". И ее надо грамотно: 1) передать 2) отобразить (самое сложное!) КАК это обычно делают в билдере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2007, 06:59 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
Вы может озвучите первоначальное задание ? А то не покидает ощущение, что вы придумываете проблему на пустом месте. Вам нужна трехзвенка ? Или клиент-сервер ? Возмите нормальную СУБД, например Firebird. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2007, 07:36 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
Первоначальное задание: разработать медицинскую информационную систему, автоматизирующую работу больничного отделения. Набор таблиц и несколько видов операций, как "добавить пациента", "назначить пациенту лекарство", "выписть пациента" и т.п. Пример учебный, надо чтобы это смотрелось более-менее нормально. Написать надо очень быстро (1-2дня). Чтобы все не было совсем тривиально, выбрал клиент-серверную архитектуру. На одном компе стоит серверная часть и сама БД. На нескольких других компах - клиентские терминалы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2007, 07:57 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
TopSpaceЧтобы все не было совсем тривиально, выбрал клиент-серверную архитектуру. На одном компе стоит серверная часть и сама БД. На нескольких других компах - клиентские терминалы.То что ты выбрал называется трёхзвёнкой:) На струя она в этой несложной задачке??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2007, 08:41 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
Извините, складывается впечатление, что все только изучают архитектуру по книжкам и никто не работал с таблицами в билдере:) Можно более конкретные советы, по реализации? 3-х звенка выбрана для возможноси последующего масштабирования. Набор операций с БД строго конкретен и регламентирован логикой работы этой ИС, именно поэтому клиент напрямую не делает запрос к серверу БД по сети, он только посылает код операции, а серверная часть ее обрабатывает. Почему не на FireBird или InerBase - время, я через ADO коннект сделал минут за 5. Так проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 06:16 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
TopSpaceИзвините, складывается впечатление, что все только изучают архитектуру по книжкам и никто не работал с таблицами в билдере:)Куда уж нам? TopSpaceМожно более конкретные советы, по реализации? Вы его уже получили ! TopSpace3-х звенка выбрана для возможноси последующего масштабирования.Учебная задача? И каковы пределы массштабирования? В вашей ИС предполагается работа тысяч врачей пытающихся одновременно кто выписать больного, кто назначить ему новое лекарство, а кто и перевести в другую палату или морг? :) TopSpaceНабор операций с БД строго конкретен и регламентирован логикой работы этой ИС, именно поэтому клиент напрямую не делает запрос к серверу БД по сети, он только посылает код операции, а серверная часть ее обрабатывает.Это ещё не повод городить трёхзвёнку... TopSpaceПочему не на FireBird или InerBase - время, я через ADO коннект сделал минут за 5. Так проще."Если нужер черт, то и иди к черту" (с) Гоголь. Нужен клиент-сервер? Используй его на здоровье! Не любишь FireBird/InterBase - возьми, например, MSSQL/MSDE и ходи к нему через ADO... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 07:35 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
Ну так какой бы вы подход избрали? Например ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 08:18 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
TopSpaceНу так какой бы вы подход избрали? НапримерБез подробного анализа предметной области - "на вскидку" выбрал бы FireBird. Но если Вы поясните "пределы массштабирования" (сколько предполагается одновременно работающих пользователей? Каков предполагаемый объём БД? И т.п.), то можно и более обоснованный выбор сделать:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 08:28 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
Помещаешь на форму TADOConnection TADOQuery TDataSource и TDBGrid все это связываешь в TADOQuery пишешь SQL запрос в TDBGrid появятся столбцы, соответствующие полученной таблице. И работай, как с таблицей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 10:12 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
VladimirPПомещаешь на форму TADOConnection TADOQuery TDataSource и TDBGrid все это связываешь в TADOQuery пишешь SQL запрос в TDBGrid появятся столбцы, соответствующие полученной таблице. И работай, как с таблицей Это-то я понимаю, но коннекшн и грид не в одной программе! Один в серверной части, другой в клиентской. КАК ИХ МОЖНО СВЯЗАТЬ - ВОТ В ЧЕМ СОКРОВЕННЫЙ СМЫСЛ СЕГО ПОСТА!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 11:28 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
VladimirPПомещаешь на форму TADOConnection TADOQuery TDataSource и TDBGrid все это связываешь в TADOQuery пишешь SQL запрос в TDBGrid появятся столбцы, соответствующие полученной таблице. И работай, как с таблицейЭто слишком просто. Автор хочет, как я понял, примерно так: DataBase <-> (TADOConnection TADOQuery ) <-- TCP/IP --> ( TClientDataSet TDataSource TDBGrid) И его интересует TopSpaceКак оптимально передать таблицу? Коннет через сокет. Я с трехзвенками никогда не работал, может по-этому у меня сразу возникают вопросы: а если несколько человек одновременно захотят поработать, как отреагирует среднее звено ? А по какому протоколу будут общаться клиент и среднее звено ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 11:30 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
Serik Akhmetov DataBase <-> (TADOConnection TADOQuery ) <-- TCP/IP --> ( TClientDataSet TDataSource TDBGrid) Именно так:) Протокол? Ну там же есть пара TCPCLientSockect/TCPServerSockect, через них. Протокол наверно такой: клиент посылает код запроса, сервер возвращает таблицу посылками, например я поылка = 1 ячейке. Про многозадачность/поточность/и т.п. - не беспокойтесь, с этим вопросов нет. Могу каждый коннект деражть в своем потоке и завести мьютекс на право запроса. Медленно, но здесь этого хватит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 11:41 |
|
||
|
БД и Builder
|
|||
|---|---|---|---|
|
#18+
TopSpace Протокол? Ну там же есть пара TCPCLientSockect/TCPServerSockect, через них. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. TopSpace Как оптимально передать таблицу?И вы наверно об этом же ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 13:50 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34544194&tid=2028808]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 398ms |

| 0 / 0 |
