Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

Перевод из Fox в InterBase   Найти похожие ветки 

 
ElvenArch ©   (2006-09-25 22:03) [0]

Доброго всем!

Суть проблемы - в фирме, где я работаю, надо совершить перевод старой системы АСУ бухгалтерией и производством, написанной на каком-то очень древнем Фоксе, на что-нибудь более новое. Но с нуля написать не удасться, поскольку начальство решило что переход будет постепенным, т.е. - отключаю одну часть старой АСУ, запускаю свою версию. У меня возникло несколько вопросов и проблем
1. Хоть Фокс и сохраняет таблицы в dbf формате, но русские символы отображаються "иероглифами". Подскажите как быть. Не хочеться переписывать базу 2000 фирм с адресами и реквизитами.
2. Поскольку базами данных занимаюсь недавно, хочу улышать Ваше мнение: реально ли каким-то образом открыть dbf файл через Дэлфи, если он уже открыт Фоксом, + возможен ли совместный доступ к таблице InterBase или Paradox ( к примеру, один редактирует таблицу - остальные только могут просматривать или делать выборку информации.

Заранее спасибо.


 
ElvenArch ©   (2006-09-25 22:07) [1]

С чего я решил что Фокс древний - прога АСУ работает только на машинах с 98 виндой, в 16 цветах.


 
Сергей М. ©   (2006-09-26 08:52) [2]


> Фокс и сохраняет таблицы в dbf формате, но русские символы
> отображаються "иероглифами". Подскажите как быть


Настроить драйвер Фокса в Администраторе BDE след.образом:

Панель управления -> BDEAdministrator -> Configuration -> Drivers -> Native -> FoxPro -> LANGDRIVER = dBASE RUS cp866


> реально ли каким-то образом открыть dbf файл через Дэлфи,
>  если он уже открыт Фоксом


Это зависит от многих факторов.
Если фоксовая программа реализована как сетевая (клиент файл-серверной СУБД), то доступ к таблицам "извне" как правило возможен, за исключением случаев, когда фокс производит регламентные операции (реиндексация, упаковка и т.д. и т.п.)


> возможен ли совместный доступ к таблице InterBase или Paradox
> ( к примеру, один редактирует таблицу - остальные только
> могут просматривать или делать выборку информации


Возможен, но чреват регулярными падениями индексов, а в ряде случаев и безвозвратной потерей инф-ции при одновременном доступе к таблицам по записи со стороны родного фоксового драйвера и, например, dbf-драйвера в составе BDE.


 
Сергей М. ©   (2006-09-26 08:56) [3]

Я, вероятно, не верно истолковал вопрос


> возможен ли совместный доступ к таблице InterBase или Paradox


Да, разумеется, одновременный доступ к объектам БД InterBase и Paradox возможен.


 
Desdechado ©   (2006-09-26 11:54) [4]

> реально ли каким-то образом открыть dbf файл через Дэлфи,
> если он уже открыт Фоксом
Открыть, теоретически, можно. Но т.к. система блокировок записей в БДЕ и фоксе несовместимы между собой, то ОЧЕНЬ рекомендую из Дельфи открывать только для чтения. Иначе попытки конкурентной записи/удаления данных могут привести к их порче. Ведь механизм записи в фоксе какой: блокируется запись или файл, вносятся изменения, разблокируются. А т.к. БДЕ этих блокировок не видит (так же, как и фокс не видит блокировок, сделанных БДЕ), то возможны варианты, когда одну и ту же запись одновременно пишут с разных сторон, что особенно опасно в случае транзакций из изменения нескольких записей.


 
Desdechado ©   (2006-09-26 11:59) [5]

> возможен ли совместный доступ к таблице InterBase
Если уж работать с IB, то забыть про табличный достпук как про страшный сон. Работа только через SQL (выборки наборов данных по условиям, обновления/удаления данных по условиям).
В этом случае вероятность конкурентных транзакций низка.

ЗЫ читать долго и внимательно ibase.ru


 
ElvenArch ©   (2006-09-26 23:33) [6]

Спасибо за советы.

1. За сегодняшний рабочий день произошла корректировка - начальство решило что переписывать АСУ я буду под Парадокс(кто-то им посоветовал...). Подскажите где лучше взять инфу по нему.

2. Тоже по поводу инфы об одновременном доступе к таблицам Парадокса(один юзер редактирует - остальные смотрят).

3. Сегодня пол дня бился над одновременным доступом к Фоксовому дбфнику(пользователь Фокса редактирует дбф, моим надо выбрать информацию), ничего умнее программного повтора попыток доступа не придумалось.

4. Совсем детский вопрос: как распечатать содержимое ДБГрид(ну не требовалось мне раньше такого :)?

П.С. Извиняюсь за обилие вопросов. Раньше я програмировал только управление оборудованием нашего завода с помощью Дэлфи и с базами данных не сталкивался. Спасибо за помощь :)


 
atruhin ©   (2006-09-27 05:39) [7]

Во первых Парадокс - морально устаревшая система, практически неработоспособна при более 3-5 пользователях. Так что отказаться однозначно.
Во вторых судя по уровню вопросов, рано тебе браться за написание ПО для АСУ, минимум год интенсивного обучения.


 
Desdechado ©   (2006-09-27 16:00) [8]

1,2. парадокс хуже фокса с точки зрения хранения данных и умер давно и надежно. Шаг к нему - шаг в могилу (как программисту, так и конторе)
3. если из фокса не открывать монопольно, то доступ на чтение тривиален
4. подключи xxxReport


 
Anatoly Podgoretsky ©   (2006-09-27 16:08) [9]

ElvenArch ©   (26.09.06 23:33) [6]
Такой как ты и посоветовал.


 
Sergey13 ©   (2006-09-27 16:11) [10]

> [0] ElvenArch ©   (25.09.06 22:03)
> Суть проблемы - в фирме

Прочитав ветку понял, что это правда. 8-)

> 1. За сегодняшний рабочий день произошла корректировка -
> начальство решило что переписывать АСУ я буду под Парадокс(кто-
> то им посоветовал...). Подскажите где лучше взять инфу по
> нему.

> Раньше я програмировал
> только управление оборудованием нашего завода с помощью
> Дэлфи и с базами данных не сталкивался.

Перевод "системы АСУ с бухгалтерией и производством" на Парадокс + поручить это человеку, не знакомому с БД (это не наезд, не обижайся)!!! Точно проблема в фирме.


 
VALUA   (2006-09-28 15:37) [11]

Когда-то я переписывала из FoxPro в Delphi , база Firebierd , IBExpert .
Для FoxPro - страница BDE , компоненты DataSource , Query .
DataSource - Свойство - DataBaseName пишется место нахождения файла
FoxPro -> D:\NOV\dbf\ .
Для Delphi - DataSource , IBQuery , IBDataBase , IBstoredProc .
Пример :
SELECT * FROM semp_n.DBF ORDER BY TABN,FAM,IM,OT - файл FoxPro - пишется в свойстве Query .
while not Query1.Eof do begin
 if (Query1["TABN"] = null) then tn1 := ""
   else
 TN1  := Trim(Query1["TABN"]);
 FAM1 := Trim(Query1["FAM"]);
 IM1  := Trim(Query1["IM"]);
 OT1  := Trim(Query1["OT"]);
  ------ запись в база Firebierd , IBExpert ----------
  IBStoredProc1.ParambyName("Kod_Lk").AsInteger := Kod;
  IBStoredProc1.ParambyName("Tabn").AsString := Tn1;
  IBStoredProc1.ParambyName("Fam").Asstring   := FAM1;
  IBStoredProc1.ParambyName("Im").AsString     := IM1;
  IBStoredProc1.ParambyName("Ot").AsString     := OT1;
  IBStoredProc1.Prepare;
  IBStoredProc1.ExecProc;
  IBStoredProc1.UnPrepare;
  ---------------------------------------------------
Query1.Next;
end;  //  whil query1


 
VALUA   (2006-09-28 15:37) [12]

Когда-то я переписывала из FoxPro в Delphi , база Firebierd , IBExpert .
Для FoxPro - страница BDE , компоненты DataSource , Query .
DataSource - Свойство - DataBaseName пишется место нахождения файла
FoxPro -> D:\NOV\dbf\ .
Для Delphi - DataSource , IBQuery , IBDataBase , IBstoredProc .
Пример :
SELECT * FROM semp_n.DBF ORDER BY TABN,FAM,IM,OT - файл FoxPro - пишется в свойстве Query .
while not Query1.Eof do begin
 if (Query1["TABN"] = null) then tn1 := ""
   else
 TN1  := Trim(Query1["TABN"]);
 FAM1 := Trim(Query1["FAM"]);
 IM1  := Trim(Query1["IM"]);
 OT1  := Trim(Query1["OT"]);
  ------ запись в база Firebierd , IBExpert ----------
  IBStoredProc1.ParambyName("Kod_Lk").AsInteger := Kod;
  IBStoredProc1.ParambyName("Tabn").AsString := Tn1;
  IBStoredProc1.ParambyName("Fam").Asstring   := FAM1;
  IBStoredProc1.ParambyName("Im").AsString     := IM1;
  IBStoredProc1.ParambyName("Ot").AsString     := OT1;
  IBStoredProc1.Prepare;
  IBStoredProc1.ExecProc;
  IBStoredProc1.UnPrepare;
  ---------------------------------------------------
Query1.Next;
end;  //  whil query1


 
Sergey13 ©   (2006-09-28 15:43) [13]

> [11] VALUA   (28.09.06 15:37)

Я присел и сказал 2 раза "Ку".



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.042 c
3-1156081674
ronyn
2006-08-20 17:47
2006.10.15
Filter Record


2-1159685512
Roeg
2006-10-01 10:51
2006.10.15
Как вывести чужое окно на передний план?


15-1158733932
Проггер
2006-09-20 10:32
2006.10.15
перенос D5


2-1159274945
gosha67
2006-09-26 16:49
2006.10.15
Почему функция возвращает данные, которые ей недоступны


2-1159355584
TakTak
2006-09-27 15:13
2006.10.15
вызов функции из DLL динамически.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский