:: Visual Foxpro, Foxpro for DOS
VFP и Firebird
DmitryKn
Автор

Сообщений: 300
Дата регистрации: 06.04.2022
Доброго всем дня!

Размышляю, как бы использовать VFP и Fireberd (далее - ФБ), полная некомпетентность порождает тучу вопросов, прошу меня понять и простить за невежество.
Как я понимаю, с ФБ тут очень многие знакомы, поделитесь, пожалуйста, знанием.

Как вообще соединиться с бд в ФБ ? Я сделал таблицу в ФБ, заполнил ее, сделал в моем приложении тестовую форму, типа справочника, почитал немного про ОДВС, и вот множество вопросов.

Как будут сохраняться данные в ФБ? Курсор на форме мы заполнили, а как в базу перенести?
Читал страшный холивар 17-го года , где правильнее разместить бизнес-логику, в БД или в приложении. А что именно под БЛ понимается? Т.е. был раньше на форме метод save, теперь надо по кнопке сэйв вызывать эту процедуру в БД , или я не так понял?

Само "клиент-сервер" - можно это все держать на одном физическом сервере, а с 10-то пользователей будет через RDP работать на нем, или обязательно приложение каждому на его машину выносить?

Может найдутся добрые люди и дадут на рабочую форму, связывающуюся с бд на ФБ , посмотреть? Я делаю все для себя, ничего не продаю, да и учусь, можно сказать, для себя, да и сам я не местный...
Ratings: 0 negative/0 positive
Re: VFP и Firebird
dimag

Сообщений: 464
Откуда: Одинцово
Дата регистрации: 17.12.2002
Книги есть, книги здесь: mega.nz


------------------
Глупость - это не отсутствие ума, это такой ум.
Ratings: 0 negative/0 positive
Re: VFP и Firebird
DmitryKn
Автор

Сообщений: 300
Дата регистрации: 06.04.2022
Спасибо! Правда, я ведь не спрашивал, что почитать, но все равно, спасибо...
Ratings: 0 negative/0 positive
Re: VFP и Firebird
dimag

Сообщений: 464
Откуда: Одинцово
Дата регистрации: 17.12.2002
DmitryKn
Спасибо! Правда, я ведь не спрашивал, что почитать, но все равно, спасибо...

ClientServerVFP.pdf начни читать с 57 это твой случай


------------------
Глупость - это не отсутствие ума, это такой ум.
Ratings: 0 negative/0 positive
Re: VFP и Firebird
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
DmitryKn
Размышляю, как бы использовать VFP и Fireberd (далее - ФБ), полная некомпетентность порождает тучу вопросов, прошу меня понять и простить за невежество.
Как я понимаю, с ФБ тут очень многие знакомы, поделитесь, пожалуйста, знанием.

Почему ФБ (всё таки экзотика)?

MSSQL Express/PG вполне рабочии решения.

DmitryKn

Как вообще соединиться с бд в ФБ ? Я сделал таблицу в ФБ, заполнил ее, сделал в моем приложении тестовую форму, типа справочника, почитал немного про ОДВС, и вот множество вопросов.

По простому:

1. В проекте фокса создать БД
2. В БД фокса создать соединение с "взрослой" СУБД
3. В БД фокса создать Remote View

При работу с RV устанавливать 5 буфферизацию.

Всё, дальше можно работать как с таблицами фокса.

DmitryKn

Как будут сохраняться данные в ФБ? Курсор на форме мы заполнили, а как в базу перенести?
Читал страшный холивар 17-го года , где правильнее разместить бизнес-логику, в БД или в приложении. А что именно под БЛ понимается? Т.е. был раньше на форме метод save, теперь надо по кнопке сэйв вызывать эту процедуру в БД , или я не так понял?

1. Уже известный TableUpdate()
2. Пока на холивар не обращай внимание, если "дойдёшь" до более-менее крупного проекта, то тогда понадобиться.
3. БЛ - это логика самой БД, те база данных не должна дать добавить в накладную ссылку на товар, которого нет в справочнике товаров, или вставить сумму в таблицу меньше нуля, итд.
Так же это, логика бизнеса, например нельзя во вчерашним днём выписать накладную (это пример ), или продать алкоголь челу младше 21 года.
4. Про ХП пока не заморачивайся. А так, да по хорошему в ХП передаются данные с клиента и уже она делает проверки и сохраняет данные.

DmitryKn
Само "клиент-сервер" - можно это все держать на одном физическом сервере, а с 10-то пользователей будет через RDP работать на нем, или обязательно приложение каждому на его машину выносить?

1. Да, можно на одном компе держать и клиента и сервер, но не обязательно.
2. Не важно где расположен клиент и как он подключается, можно иметь один выделенный сервер с БД и выделенный сервер с RDP с которого клиенты будут "ходить" в БД.

DmitryKn
Может найдутся добрые люди и дадут на рабочую форму, связывающуюся с бд на ФБ , посмотреть? Я делаю все для себя, ничего не продаю, да и учусь, можно сказать, для себя, да и сам я не местный...

Тут сложность, как правило, форма завязана на "свой" фреймворк, поэтому в чистом виде форма работать не будет.

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


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: VFP и Firebird
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
DmitryKn
Доброго всем дня!
Размышляю, как бы использовать VFP и Fireberd (далее - ФБ), полная некомпетентность порождает тучу вопросов, прошу меня понять и простить за невежество.
Как я понимаю, с ФБ тут очень многие знакомы, поделитесь, пожалуйста, знанием.
А не знающим ФБ нельзя? ФБ настолько оригинален в плане общения с клиентом, что знания других СУБД не пригодятся?
Цитата:

Как вообще соединиться с бд в ФБ ?
Точно так же, как и с любой другой СУБД - используя стандартизированные интерфейсы и протоколы.
Цитата:
Я сделал таблицу в ФБ, заполнил ее,
И чем при этом пользовался?
Цитата:
сделал в моем приложении тестовую форму, типа справочника, почитал немного про ОДВС, и вот множество вопросов.
А конкретнее можно? Какие вопросы возникли?
Цитата:

Как будут сохраняться данные в ФБ? Курсор на форме мы заполнили, а как в базу перенести?
Командами сохранения. В соответствии с выбранной технологией работы. Например, при использовании курсорадаптеров достаточно команды TableUpdate().
Цитата:
Читал страшный холивар 17-го года , где правильнее разместить бизнес-логику, в БД или в приложении. А что именно под БЛ понимается?
Вот Tableupdate() - это не БЛ, а вот вся та обертка вокруг неё в виде всяких проверок/вычислений/перевычислений и т.д. - БЛ.
Цитата:
Т.е. был раньше на форме метод save, теперь надо по кнопке сэйв вызывать эту процедуру в БД , или я не так понял?
Надо выполнять действия по сохранению. А какие именно уже решать разработчику.
Цитата:

Само "клиент-сервер" - можно это все держать на одном физическом сервере,
Можно.
Цитата:
а с 10-то пользователей будет через RDP работать на нем,
А при чем тут RDP?
Цитата:
или обязательно приложение каждому на его машину выносить?
С клиентом обычно так и делается. А серверная часть обычно на сервере. Хм, есть подозрение, что некоторые понимают термин "клиент-серверное приложение" как-то своебразно...
Цитата:

Может найдутся добрые люди и дадут на рабочую форму, связывающуюся с бд на ФБ , посмотреть?
А с другой БД нельзя? Думаешь, для ФБ она будет какая-то совершенно особенная и нисколько не похожая на формы для работы с другими БД?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: VFP и Firebird
AndyNigmatec

Сообщений: 1550
Откуда: Волгоград
Дата регистрации: 28.06.2015
Я использую такую связку - нет проблем )))

соединение - через ODBC-драйвер - его нужно устанавливать на каждую машину которая будет работать с бд

Никаких фреймворков не пользую - все на SQLCONNECT-SQLEXEC работает

создавать/конструировать саму БД firebird (да и запросы-процедуры тестить) мне удобно в IBExpert - бесплатная среда для бывшего СССР


если что - отвечу конкретнее))
Ratings: 0 negative/0 positive
Re: VFP и Firebird
AndyNigmatec

Сообщений: 1550
Откуда: Волгоград
Дата регистрации: 28.06.2015
вот упрощенные примеры:

DmitryKn
Как вообще соединиться с бд в ФБ ?

cConnectionString='DRIVER={Firebird/InterBase(r) driver};DBNAME=localhost:fbprice5.gdb;UID=XXXXXXUSER;PWD=XXXXXXXX;CHARSET=win1251;DIALECT=3'
nConnect=SQLSTRINGCONNECT(cConnectionString)
IF nConnect>0
=SQLSETPROP(nConnect,"Transactions",2)=1 && если используем транзакции
ELSE
&& ошибка соединения
* AERROR(a1)
* a1[2] - текст ошибки
ENDIF
.....
IF nConnect>0
=SQLDISCONNECT(nConnect)
ENDIF

для подключения/отключения под свои нужды делал себе простецкий класс-обертку (приложил)



Исправлено 1 раз(а). Последнее : AndyNigmatec, 17.03.23 16:32
Ratings: 0 negative/0 positive
Re: VFP и Firebird
DmitryKn
Автор

Сообщений: 300
Дата регистрации: 06.04.2022
PaulWist

Почему ФБ (всё таки экзотика)?

ну, мне показалось, многие так работают тут, и безплатно, к тому же. Смотрел в сторону MySQL 8 , но подумал, может закроют доступ отсюда и всякое такое, "известные события". Да и вообще, как выбирать, если сам ничего не знаю, а сколько знающих, столько и мнений. Хоть с чего-то , но начать, так решил.
ssa
А не знающим ФБ нельзя? ..
ssa
И чем при этом пользовался?...

да можно, конечно, только рад буду. А пользовался RedExpert, создал таблицу, потом из фокса в xlx, потом в scv, потом затянул в ФБ, данные вроде те же, правильные.
ssa
А при чем тут RDP?
А так исторически сложилось, подключаемся через рдп на терминал, а на нем уже вся наша прелесть, и VFP, и 1С и всякое другое. Рабочие места только полистать Интернет, почта и зайти в терминал.
ssa
А с другой БД нельзя?
Конечно давайте!
AndyNigmatec
если что - отвечу конкретнее))

Спасибо! А вопросов будет, похоже.
PaulWist
2. В БД фокса создать соединение с "взрослой" СУБД

Пишет Connection error [ODBC Fireberd driver] File Database is not found
Сам файл в папке, почему-то без какого-либо расширения, может чего-то в RedExpert недокомпилировал
Ratings: 0 negative/0 positive
Re: VFP и Firebird
AndyNigmatec

Сообщений: 1550
Откуда: Волгоград
Дата регистрации: 28.06.2015
DmitryKn
Пишет Connection error [ODBC Fireberd driver] File Database is not found
Сам файл в папке, почему-то без какого-либо расширения, может чего-то в RedExpert недокомпилировал

для начала на машине установите ODBC-драйвер
выше написал пример со строкой соединения

раз тестите локально - то напишите полный путь к файлу бд (у огнептицы приняты расширения файлов .gdb или .fdb)
cConnectionString='DRIVER={Firebird/InterBase(r) driver};DBNAME=C:\folder\....file.gdb;UID=XXXXXXUSER;PWD=XXXXXXXX;CHARSET=win1251;DIALECT=3'

также в FB существует такое понятие как DIALECT базы - когда вы ее создавали - то указывали (это 1 или 3)



Исправлено 1 раз(а). Последнее : AndyNigmatec, 17.03.23 16:45
Ratings: 0 negative/0 positive
Re: VFP и Firebird
AndyNigmatec

Сообщений: 1550
Откуда: Волгоград
Дата регистрации: 28.06.2015
ODBC-драйвер использую такой - Firebird_ODBC_2.0.1.152_Win32.exe - беспроблемный он
если не найдете, то могу закинуть куда-нить
Ratings: 0 negative/0 positive
Re: VFP и Firebird
DmitryKn
Автор

Сообщений: 300
Дата регистрации: 06.04.2022
У них есть все на сайте. Скачивал 64-разрядный.

Может быть одновременно и DBC и ФБ?
Вроде Verify connetion подключился к ФБ, решил сохранить и перекомпилировать приложение, ошибка при компиляции и dbc поломалась сразу.
я в своем приложении хотел тестовую формочку сделать и на ней с ФБ пробовать, или надо делать отдельное приложение ?
Ratings: 0 negative/0 positive
Re: VFP и Firebird
AndyNigmatec

Сообщений: 1550
Откуда: Волгоград
Дата регистрации: 28.06.2015
и все-таки - очень рекомендую IBExpert, раз будете конструировать/пилить саму базу - то мастхэв
Ratings: 0 negative/0 positive
Re: VFP и Firebird
AndyNigmatec

Сообщений: 1550
Откуда: Волгоград
Дата регистрации: 28.06.2015
64-разрядный не пойдет, фокс-то 32 разрядный, соотв. и драйвер нужно ставить 32
Ratings: 0 negative/0 positive
Re: VFP и Firebird
AndyNigmatec

Сообщений: 1550
Откуда: Волгоград
Дата регистрации: 28.06.2015
DmitryKn
Может быть одновременно и DBC и ФБ?
Вроде Verify connetion подключился к ФБ, решил сохранить и перекомпилировать приложение, ошибка при компиляции и dbc поломалась сразу.
я в своем приложении хотел тестовую формочку сделать и на ней с ФБ пробовать, или надо делать отдельное приложение ?

почему не может - все возможно )))

код подключения к firebird никак на компиляции приложения не сказывается
Ratings: 0 negative/0 positive
Re: VFP и Firebird
DmitryKn
Автор

Сообщений: 300
Дата регистрации: 06.04.2022
AndyNigmatec
64-разрядный не пойдет, фокс-то 32 разрядный, соотв. и драйвер нужно ставить 32

А саму ФБ тоже 32-разрядную надо?
Ratings: 0 negative/0 positive
Re: VFP и Firebird
AndyNigmatec

Сообщений: 1550
Откуда: Волгоград
Дата регистрации: 28.06.2015
не, сам FB ставьте лучше 64 (система же у вас 64 как я понимаю) - к драйверу и фоксу сам сервер не имеет отношения.

З.Ы. firebird кстати у меня работал и так и эдак, и на виде и на линухе, но это так, к слову
Ratings: 0 negative/0 positive
Re: VFP и Firebird
AndyNigmatec

Сообщений: 1550
Откуда: Волгоград
Дата регистрации: 28.06.2015
Давайте разложим немного по полочкам:

1. Сервер БД - это в вашем случае firebird, он (грубо говоря) живет независимо от вашего приложения - это "движок", он работает даже если к нему никто не подключен. запускается он соответствующими службами при старте системы (по умолчанию) - его можно остановить/перезапустить как службу.

2. ваше приложение - это клиент, он живет "отдельно" от сервера

3. только когда вы подключаетесь из приложения - эти две сущности встречаютя (по любви ессно)))

4. но сервер, он (она скорее в нашем изложении) "дамочка" такая - готова обслужить кучу "клиентов", причем одновременно))

кратко о клиент-сервер

При этом клиент не "держит открытым" никакие таблицы на сервере, весь обмен выполняется через запросы.

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



Исправлено 1 раз(а). Последнее : AndyNigmatec, 17.03.23 18:47
Ratings: 0 negative/0 positive
Re: VFP и Firebird
DmitryKn
Автор

Сообщений: 300
Дата регистрации: 06.04.2022
AndyNigmatec
Давайте разложим немного по полочкам:
...

3. только когда вы подключаетесь из приложения - эти две сущности встречаютя (по любви ессно)))

4. но сервер, он (она скорее в нашем изложении) "дамочка" такая - готова обслужить кучу "клиентов", причем одновременно))

кратко о клиент-сервер

интересный взгляд
Ratings: 0 negative/0 positive
Re: VFP и Firebird
AndyNigmatec

Сообщений: 1550
Откуда: Волгоград
Дата регистрации: 28.06.2015
дополнил там чуть про размещение логики
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 12 (Гостей: 12)

© 2000-2024 Fox Club 
Яндекс.Метрика