Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.12.172] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте!!! Я конечно не разбирался до конца с этим вопросом, но хочу спросить совета. У меня есть БД МС Акцесс, она лежит на виндовой машине. Хочу сделать программу, которая висела бы демоном на Фрюхе и лазила бы в БД по запросу с httpd, насколько я понимаю запрос на выборку по БД идёт через этот демон. Насколько я понимаю в Дельфи моно писать приложения пот Юникс платформы. Как это осуществить? И что для этого нужно??? Буду очень признателен за любые подсказки ( если не сложно, то с примерами кода...плиз). Код поиска в БД напишу сам... опыт есть....
Заранее благодарен!! Приятного времени суток!!! |
Сообщ.
#2
,
|
|
|
Написать delphi-совместимый gui для FreeBSD сложнее, т.к это нужно делать на Kylix под Linux , а как оно будет работать, и будет ли вообще, сложно сказать, т.к совместимость вообщем-то Linux(KYLIX) - Windows(DELPHI) а не FreeBSD, хотя в BSD есть Linux-совместимость... Универсальным решением является по сути создание чего-то типа протокола, скорее просто форматированной передачи данных в виде, скажем записей (record) по TCP (чтобы получать подтверждение о доставке) из Jet базы отформатировав их.
|
Сообщ.
#3
,
|
|
|
??? А конкретнее если можно? Понимаешь лично для меня фраза "написать, что-то типа протокола..." звучит ооочень страшно. Нет ли пути по-проще?
Заранее Благодарен. |
Сообщ.
#4
,
|
|
|
Лично я не писал таких прог, поэтому конкретных "подводных камней" на знаю. Но какая разница между какими машинами происходит передача? Будь то win-win, win-linux, win-bsd, bsd-linux... Ведь данные можно принимать и обрабатывать точно также! Т.е протокол это громко сказано, имеется ввиду формат передачи. Например в строке будет передаваться номер записи, поле, значение поля... Например я это себе так представляю:
1. Пользователь на BSD машине делает запрос (например нужны поля szName, iAge таблицы USERS). 2. bsd-daemon обрабатывает его и присваивает уникальный идентификатор. 3. Отсылает 2 запроса типа в виде такого: ID\%1873645\%FIELD\%szName\%TABLE\%USERS и ID\%1873645\%FILED\%iAge\%TABLE\%USERS 4. win-сервер получает запрос (банальный winsock ) и split'ит его, т.е заполняет например так: type TBsdQuery = array[0..2] of String; function SplitQuery(Src: String): TBsdQuery; Например если строка s содержит полученые данные, то после выполнения SplitQuery получим: var tmp: TBsdQuery; s: string; ... s := lsocket.ReceiveText; tmp := SplitQuery(s); { В tmp[0] содержиться id, в tmp[1] - поле, в tmp[2] - таблица } ... Дальше читаем поля и ищем нужную запись. Передаем в таком же формате bsd-машине. Она сравнивает id, если совпали, выдаёт ответ, если нет, то запрос отсылал кто-то другой... Это основная идея. Удачи. |
Сообщ.
#5
,
|
|
|
попробую!!!
|