Мое приложение хорошо работает на RHEL 5 (TCL 8.4).Но в 64-битном TCL8.5 RHEL 7 файлы базы данных поступают неправильно.Приложение по умолчанию указывает на последний файл записи в БД.Следовательно, я предполагаю, что это может быть проблема с тем, как 8.5 обрабатывает поиск файлов.Поэтому я создал файл X и написал следующий код.(Пожалуйста, игнорируйте dbname и / path, все работает нормально)
Файл X
#!/bin/sh
# \
exec tclsh "$0" "$@"
puts [package require Itcl]
namespace import ::itcl::*
puts $itcl::patchLevel
puts $itcl::library
set databases /dbname
set system ($databases,dbpath) /path
source File.class.tcl
source FareFile.class.tcl
puts [Fare.File formtitle]
source Record1File.class.tcl
puts [Fare.File formtitle]
Я использую FareFile и печатаю заголовок формы (o / p: Fare Viewer), используя метод formtitleкоторый объявлен в File.class.tcl.Затем я создаю Record1File и распечатываю формуляр FareFile (первый), в котором печатается заголовок формы Record1File.Метод formtitle возвращает значение файла с последним источником.Это не происходит в 8.4
File.class.tcl:
class File {
variable fileinfo
variable recordarray
variable allads_flag 0
variable updates_is_lastkey 0
method formtitle {} {
variable fileinfo
return $fileinfo(formtitle)
}
}
FareFile.class.tcl
FareFile ::Fare.File
::Fare.File parse_fields {
tabtitle "Fares"
formtitle "Fare Viewer"
}
Record1File.class.tcl
Record1File ::Record1.File
::Record1.File parse_fields {
tabtitle "Record 1"
formtitle "Record 1 Viewer"
выход в 8,4 / RHEL 5: (ожидаемый выход в 8,5)
3.4
3.4.0
/path
Fare Viewer
Fare Viewer
выход в 8,5 / RHEL 7:
3.4
3.4.3
/path
Fare Viewer
Record 1 Viewer
Если вы видите выход на обоихплатформы, это разные.Пожалуйста, помогите