:: Visual Foxpro, Foxpro for DOS
Где хранить SQL-строки соединений?
shumik73

Сообщений: 568
Откуда: Алматы
Дата регистрации: 10.05.2006
После того как напартачил с Windows-реестром - теперь у меня нет Desktop-стола и ярлыков, и панель внизу исчезла
Зато прогружается "Мой компьютер" (Exolorer.exe). А мне говорили - сделай копию реестра. :hi:
Вернулся во времена черного окна....

Но данная ситуация наводит на ряд мыслей:

  • EXE - файлы работают, но они не знают среду (где базы данных, где каталоги)
  • Определить среду (базы, каталоги,файлы) можно путем сканирования(определения), но для болей точности - нужно чтобы эта информация была в виде настроек, которые можно менять вне EXE - файла
  • Где хранить настройки? Да можно их заложить в сам EXE - файла и каждый раз компилировать. Это не выход
  • Следует разделить настройки которые потребуются до запуска EXE - файла и настройки которые могут поменяться во время работы EXE - файла
  • Настройки которые потребуются до запуска EXE можно передать 3 способами: а) Как параметры б) Как считывание с рядом лежащего файла INI или DBF с) Как считывание с реестра
  • Настройки бывают - как а) константы б) списки с)таблицы

    Рядом лежащие файлы с настройками уже встречали:
  • AutoExec.bat , Config.sys в DOS
  • Config.fpw в фоксе
  • Сам использую для своего приложения INI-файл

    У данного формата есть "+" и "-". Информация рядом с EXE - файлом и ее можно легко изменить. Но спрятать и защитить уже сложнее
    А это значит что такие открытые файлы удобны для публичных настройек, а вот другие настройки как ключи, пароли, строки подключения нужно спрятать так чтобы видел и менял только ты. То есть спрятать туда где тяжело найти, и(или) шифровать.

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

    Как пример как сохранить несколько строк SQL-соединений?
    Нужно не только сохранить и считывать, но и потом изменить и еще нужно сканировать сколько этих строк?

    [DATABASE]
    KOL_DBLIST = 3
    DBLIST(1,1) = БАЗА№1
    DBLIST(1,2) = Driver=SQL Server;Server=(local);Database=access;Trusted_Connection=No;uiD=sa;PWD=sa;
    DBLIST(2,1) = БАЗА№2
    DBLIST(2,2) = Driver=SQL Server;Server=(local);Database=access;Trusted_Connection=No;uiD=sa;PWD=sa;
    DBLIST(3,1) = БАЗА№3
    DBLIST(3,2) = Driver=SQL Server;Server=DB2;Database=access;Trusted_Connection=No;uiD=sa;PWD=xxxx;

    Решил с помощью INI-файла, но нужно эту задачу иначе. Поделитесь соображениями?




    Исправлено 1 раз(а). Последнее : shumik73, 24.06.25 10:10
    Ratings: 0 negative/0 positive
  • Re: Где хранить SQL-строки соединений?
    Дмитрий Петров

    Сообщений: 3116
    Откуда: Пермь
    Дата регистрации: 09.07.2001
    Цитата:
    После того как напартачил с Windows-реестром - теперь у меня нет Desktop-стола и ярлыков, и панель внизу исчезла
    Всякие тумбочки по приему денег за услуги( телефон, жкх и тп.) раньше точно так же делали.
    Оставляли видимым только экран (я такой аппарат препарировал в 2008 году и участвовал в организации приема денег от населения за электроэнергию)
    Один раз в сапера все таки поиграл на такой штуковине в торговом центре
    Цитата:
    Поделитесь соображениями?
    Мне кажется, если INI не доступен из вне, то вполне себе решение.
    Вариантов , где 20-30 строчек сохранить наверное много ))
    Ratings: 0 negative/0 positive
    Re: Где хранить SQL-строки соединений?
    akvvohinc

    Сообщений: 4617
    Откуда: Москва
    Дата регистрации: 11.11.2008
    Цитата:
    Но вот как сохранить таблицу?
    Можно так же, как хранятся записи в форматах CSV или DELIMITED.

    shumik73
    и еще нужно сканировать сколько этих строк
    Присваивать имена вида DBLIST_nn и сканировать в цикле от nn=1 до тех пор, пока параметр с очередным номером найден не будет.



    Исправлено 1 раз(а). Последнее : akvvohinc, 25.06.25 06:24
    Ratings: 0 negative/0 positive
    Re: Где хранить SQL-строки соединений?
    sphinx

    Сообщений: 32196
    Откуда: Екатеринбург
    Дата регистрации: 22.11.2006
    Цитата:
    Информация рядом с EXE - файлом и ее можно легко изменить. Но спрятать и защитить уже сложнее

    Зашифровать. И необязательно сложным алгоритмом, если задача только от любопытных глаз прикрыть.


    ------------------
    "Veni, vidi, vici!"(с)
    Ratings: 0 negative/0 positive
    Re: Где хранить SQL-строки соединений?
    sphinx

    Сообщений: 32196
    Откуда: Екатеринбург
    Дата регистрации: 22.11.2006
    Цитата:
    Решил с помощью INI-файла, но нужно эту задачу иначе. Поделитесь соображениями?

    Во времена DOS можно было писать байты на диск (на неиспользуемоую файловой системой область, без создания файла), так писали всякие ключи и/или метки от копирования. В современных ОС не знаю, позволит ли система.

    Все храним в INI, вроде никто без нужды не лезет в него. Ну и может лог какой вести в каталоге пользователя (чтоб был гарантированный доступ на запись).

    Я понимаю, что ВНЕШНЕЕ изменение не отследить в программе. Но можно хранить состояние/копию/хэш и сверять, было ли изменение. Ну тогда да, может заморчиться и в программе проверять. Я просто мыслей накидываю, может на что натолкнет, не претендую на оригинальность и тем более на категоричность.

    Шифрование и ведение изменений в INI полностью отрубит простоту его использования для продвинутого юзера, который в состоянии пару фраз (путь к файло, к примеру) изменить. Поэтому и наши проекты на INI (а не в DBF, что требует уже определенных знаний/умений), и свои я в INI (не вижу больших плюсов с этим реестром, с ним проблем больше, а выхлоп такое себе).


    ------------------
    "Veni, vidi, vici!"(с)




    Исправлено 2 раз(а). Последнее : sphinx, 25.06.25 14:08
    Ratings: 0 negative/0 positive
    Re: Где хранить SQL-строки соединений?
    pasha_usue

    Сообщений: 3751
    Откуда: Е-бург
    Дата регистрации: 06.10.2006
    sphinx
    Во времена DOS можно было писать байты на диск (на неиспользуемоую файловой системой область, без создания файла), так писали всякие ключи и/или метки от копирования. В современных ОС не знаю, позволит ли система.
    Нифа ты чего вспомнил (;Ж Функциями BIOS писать можно только из нулевого кольца. Попасть в нулевое кольцо нельзя уже в windows95, если ты не вирус. Ось, естественно, ничего такого позволить не может.

    Но если на диске есть неразмеченное место, то туда можно что-нибудь записать. Хотя лучше иметь раздел без буквы, так меньше шансов, что ось затрёт данные.
    Ratings: 0 negative/0 positive
    Re: Где хранить SQL-строки соединений?
    sphinx

    Сообщений: 32196
    Откуда: Екатеринбург
    Дата регистрации: 22.11.2006
    Цитата:
    Нифа ты чего вспомнил (;Ж Функциями BIOS писать можно только из нулевого кольца. Попасть в нулевое кольцо нельзя уже в windows95, если ты не вирус. Ось, естественно, ничего такого позволить не может.

    Дак я в асм мало, это Медстрах все там знает. Поэтому и высказал сомнения, что ЕСЛИ позволит ОС.


    ------------------
    "Veni, vidi, vici!"(с)
    Ratings: 0 negative/0 positive
    Re: Где хранить SQL-строки соединений?
    of63

    Сообщений: 26174
    Откуда: Н.Новгород
    Дата регистрации: 13.02.2008
    Ничего хранить не желательно, вспомните Диогена - ничего не нужно для жизни, ну, для жизни особого рода, для "жизни". Я не шучу )

    () Все, что будет записано "на память" будет утрачено. В памяти останется только нужное, хотя, малоинтересное... )



    Исправлено 1 раз(а). Последнее : of63, 05.07.25 00:59
    Ratings: 0 negative/0 positive
    Re: Где хранить SQL-строки соединений?
    alextash
    Автор

    Сообщений: 2294
    Откуда: НСК
    Дата регистрации: 03.05.2006
    я использую mem файл
    Ratings: 0 negative/0 positive
    Re: Где хранить SQL-строки соединений?
    of63

    Сообщений: 26174
    Откуда: Н.Новгород
    Дата регистрации: 13.02.2008
    Или в записной книжке )
    Текстовый? или в фоксовом смысле, fpt )
    Ratings: 0 negative/0 positive


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

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

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