Последнюю версию FAQ можно найти на сайте http://www.interface.ru/ |
CTD 2000: Коротко о главном
Q: Есть ли в Сentura средства репликации баз?
A: Для построения репликаций в Сentura предусмотрены несколько возможностей. Различают SQLBase Exchange Server и SQLBase Exchange Desktop. SQLBase Exchange Server предназначен для реализации технологии распределеных БД, включая автоматическую организацию различных видов репликаций.
SQLBase Exchange Desktop в первую очередь ориентирован на один компьютер и обеспечивает конвертирование БД различных форматов, включая и преобразование даннных. SQLBase Exchange Desktop поддерживает также выполнение скриптов для выполнения сложных репликаций. Более подробную информацию вы найдете в документации exchange.pdf.
Q: Расскажите пожалуйста, чем можно обосновать использование средств Centura? В чем преимущества работы на Centura?
A: Некоторая информация, в которой есть характеристика CTD2000, содержится на сайте www.inteface.ru в статьях, посвященных продуктам Centura. Хотя, я думаю, Вы с ней знакомы. В дополнение, и особенно для руководства, можно сформулировать следуюшие опорные критерии обоснования:
1. Centura дает комплексное рещение (Есть родные средства разработки, СУБД, WEB поддержка, современные ОС, репликации, все уровни программирования - от C++ до Quick Object).
2. Есть поддержка, причем с 12-летней историей, всех мощных СУБД Oracle, SQLBase, Sybase, MS SQL Server и других.
3. Развитые и адаптированные под современные требования средства построения пользовательского интерфейса, причем программирование при минимуме ограничений намного проще, чем на C++ и Pascal (в 2-3 раза) (студенты осваивают CTD и делают на нем курсовую за 2-3 недели).
4. Фирма Centura сейчас довольно устойчиво закрепилась на рынке, у нее мощнейший заказ для ВМФ США.
5. В CTD 2000 много новых возможностей (AX, MS OLE DB, динамика объектов и
т.д.) и исправлены предыдущие ошибки. Можно привести еще много аргументов, но и
эти должны быть услышаны.
A: На сайтах http://www.centurasoft.com/ и
http://www.interface.ru
A: Все новые версии SQLBase соответствуют 2000 году. Более подробную
информацию можно найти на http://www.centurasoft.com/support/tech_info/b%20ulletins/cli2000.htm.
Ваши прикладные программы, которые обращаются к SQLBase, также следует
проверить. Используйте утилиту, доступную на ftp.centurasoft.com/products/utilities/y2ksqlb.zip
чтобы проанализировать ваши SQLBase базы данных. Пожалуйста, прочитайте
ReadMe.txt и License.txt после извлечения их из .ZIP файла. Раздел "Поведение
функции YEAR()" так же может быть интересным
A: Проблема 2000 полностью решена для следующих версий самых популярных программных продуктов:
Q: Перед нами стоит задача написать систему производственной себестоимости (СПС). На данный момент мы пытаемся выбрать подходящее программное обеспечение для этой задачи.
A: Короткий ответ:
Ответ на поставленный вопрос зависит от целого ряда факторов и условий, уточнение которых поможет выбрать подходящее программное обеспечение для поставленной задачи. По грубой оценке задачи можно предложить проверенные на практике многих разработчиков средства: для разработчиков Centura Team Developer (1.2 - 2.0) - SQLWindows/SQLWindows32, а для хранения данных SQLBase 6.1/7.5.
Возможный распространенный ответ:
Ответ на поставленный вопрос зависит от целого ряда факторов и условий, из которых можно выделить следующие главные:
Q: Нас очень заинтересовала бы система разработки приложений (скажем, клиентов баз данных) с возможностью получать СТАНДАРТНЫЙ C++ код. Borland C++ Builder не очень устраивает: те функции, которые он включает в текст программы, не всегда (и все реже) поддерживаются другими разработчиками. Microsoft C++ тоже основывается на своих библиотеках, и хотя это надежнее, все же Microsoft меняет их как перчатки... Нет ли в природе чего-нибудь более универсального? Просветите, пожалуйста.
A: Вообще в вашем вопросе содержится много неопределенного (какие функции Вас не устраивают, какие системы классов и почему Вас не удовлетворяют и т.д.), однако, попробую все-таки ответить.
Если брать мировую практику разработки программ на С и С++, то действительно: оценки систем программирования Borland C++ и Microsoft C++ не очень высокие: они с трудом попадают в первый десяток систем разработки на С++. Однако так сложилась тенденция распространения продуктов в нашей стране, именно они из-за своей доступности (бесплатности) получили у нас широкое распространение. Так системы Watcom, Zortech C++, Visual Age C++, всегда у профессиональных программистов ценились выше. Данные системы программирования не часто появляются на "доступных" CD и торговых фирмах. Кроме того, в Интернет есть большое количество складов библиотек для С и С++.
Если Вы имеете ввиду средства проектирования программ, в частности то, что называется CASE-технологиями, то в настоящее время это направление бурно развивается и здесь можно рассматривать продукты многих фирм-лидеров: Rational, Platinum (+ Logic Works), SilverRun, Embarcadero, из отечественных CaseAnalitic (SoftArt) и т.д. Информацию о продуктах этих фирм можно найти на одноименных сайтах. Однако с генерацией кода в них на практике не так хорошо, поэтому их применение эффективно в первую очередь, все же, на этапах проектирования и сопровождения.
Вообще, если речь идет о создании приложений и сложных программных систем клиентов баз данных, то мне, несмотря на то, что я сам являюсь приверженцем языка С и С++, придется сказать, что использование этого языка для данных целей не является лучшим выбором. Это, к сожалению, факт. API (например, API для SQLBase), которое предлагается для многих СУБД не просто в освоении, и, тем более, трудоемкость разработки приложений велика. Хотя этот вариант нельзя отбрасывать для разработки профессиональных систем.
Наиболее предпочтительным может быть комбинированный вариант: основой приложения являются специальные средства разработки уровня 4GL (например, SQLWindows компании Centura, Centura Team Developer, Developer фирмы Oracle и др.), а для более ответственных участков используется С или С++, функции которых вызываются из приложений при обращении к DLL. Язык SAL, используемый в SQLWindows очень приближен к С и С++, однако в нем нет той сложности, которые испытывают разработчики при изучении системы классов, в частности Borland C++ и Microsoft C++, есть все основы для объектно-ориентированного проектирования и проектирования, коллективной разработки, создания собственных шаблонов и библиотек, достаточное количество стандартных и подключаемых объектов (COM и ActivX). Можно много говорить о достоинствах этого варианта, хотя конечно существуют и недостатки. Многие разработчики для создания программных систем клиентов баз данных все же предпочитают эти доступные на нашем рынке и не дорогие, даже по сравнению с Borland C++ и Microsoft C++, средства разработки.
Теперь по вопросу универсальности. Не думаю, что универсальная система программирования Вас больше устроит, так как с универсальностью очевидно теряется простота и прозрачность для создания систем. Здесь, по-видимому, нужен здравый компромисс.
Извините за некоторые общие рассуждения, возможно Вам знакомые, но более
конкретный ответ на Ваш вопрос возможен только при уточнении исходных посылок:
какой класс задач-приложений Вы хотите создавать, какими ресурсами располагаете,
каков уровень ваших программистов (средний или высокий, для низкого я бы
порекомендовал VB), почему Вас не устраивают все-таки функции и классы Borland
C++ и Microsoft C++ и т.д.
Q: Не подскажете, какими средствами можно решить следующую задачу: Имеется официально купленный SQLBase 6.0 for Netware 25 Users. Установлен на NetWare Server 4.1.
Сейчас стоит задача перевода всей сети на платформу Windows NT.
В связи с этим возникает вопрос: Как осуществить перенос SQLBase Server 6.0, работающего в данный момент под NetWare, на Windows NT Server?
Подскажите, пожалуйста, как это лучше осуществить технически и какие программные средства необходимо приобрести для решения этой задачи дополнительно.
A: Начну с конца. Если у Вас в комплекте SQLBase 6.0 нет дистрибуции для SQLBase под Windows NT Server, то Вам необходимо приобрести этот продукт. В настоящее время лучшая версия SQLBase 7.5.1. Она, кроме того, обеспечивает три уровня защиты данных и доступа. Цены на версии (в зависимости от числа пользователей) есть на сайте www.interface.ru. Если дистрибуция есть, то приобретать ничего не надо. Кроме того, если у Вас старый SQLWindows, желательно поменять его на CTD 1.5.1 (до 15 апреля есть льготный вариант приобретения мощнейшей версии CTD 2000 - она выйдет летом - бесплатно, купившим CTD 1.5.1).
После установки на NT SQLBase требуются минимальные штатные настройки сервера и клиента, детально описанные в документации. В принципе возникает две задачи: подключение к серверу и перенос данных из старых баз SQLBase на новые.
Первая задача решается настройками в SQL.INI на сервере и клиенте (протоколы связи должны быть одинаковыми TCP/IP). На клиенте нужно поменять настройки COMDLL в секции [winclient] или [win32client] на sqlwsock и sqlws32 соответвенно (отмечу попутно, что если у серверов разные имена, то могут одновременно работать несколько серверов на разных платформах). На сервере в доступном только ему (!) SQL.INI, нужно произвести настройки данного вашего сервера, указав COMDLL, требуемого типа в секции [dbnt25sv]
servername=server1,<ваша COMDLL для связи>,
для NT это может быть также sqlws32 для протокола TCP/IP:
servername=server1, sqlws32.
Вторая задача связана с переносом данных на новый сервер. Возможно, Вы это знаете, но я все-таки отмечу детали. На старом сервере нужно выполнить с SQLTalk команду UNLOAD для вашей БД (connect и set server обязательны). Затем создать БД с таким же именем на новом сервере и выполнить с SQLTalk команду LOAD с указанием того же файла. Детали: файл с информацией должен быть доступен серверу (расположен на сетевых томах); при новой версии сервера в этом файле возможно потребуется вручную поменять номер версии выгруженной БД (это в начале файла выгрузки).
Я думаю, что Вы по достоинству оценили надежность SQLBase и SQLWindows. Отмечу, что новые версии не менее надежны и обладают многими хорошими дополнительными возможностями.
Q: Как в DataBaseExplorer можно выгрузить таблицу из одной базы в текстовый файл, чтобы потом загрузить в таблицу другой базы?
A: Если Вы работаете с SQLBase, то для этой операции можете использовать команды UNLOAD и LOAD, которые доступны в утилите SQLTalk (как автономной, так и встроенной в DataBaseExplorer). Причем, если таблицы совпадают по структуре и названию, то при UNLOAD могут быть сгенерированы команды создания таблиц. В противном случае нужно немного настроить скрипт для правильной загрузки в существующие таблицы (документация - sqltalk.pdf).
Кроме того, находясь в SQLTalk и сформировав данные в окне выхода с помощью любого запроса, вы можете сохранить результаты в текстовом формате, а далее с помощью запросов загрузить в любую БД.
Но на самом деле это очень удобно делать с помощью специального продукта Сentura, который называется Сentura SQLBase Exchange. Он позволяет делать репликации (см. ответ ниже) между любыми БД, в том числе и не SQL типа.
Различают SQLBase Exchange Server и SQLBase Exchange Desktop.
Кроме этого, можно в собственной программе реализовать любые сложные преобразования данных и их загрузку в БД.
Q: Когда производится удаление из таблицы, где присутствуют внешние ключи, скорость работы ужасна! Что можно сделать, для ускорения процесса?
A: Решение заключается в том, что внешние ключи должны быть установлены после того, как будет создан индекс на ссылочную колонку в каждой дочерней таблице. Для каждой таблицы с внешним ключом:
A: Похоже на то, что индекс, который был установлен при создании первичного
ключа, был удален. Удалите первичный ключ, создайте индекс, и заново создайте
первичный ключ. Это должно решить проблему.
A: Для SQLBase версии 6. x.x можно производить модификацию с использованием
SUBSELECT. В SQLBase версии 7.0 впервые представлена функция, выполняющая
подобные действия. Имеется превосходный пример для SQLWindows, показывающий
данную методику, доступный на сайте http://www.centurasoft.com/support/tech_info/knowledge_base/sbsinfo/t1tot2.zip
A: Эта ошибка происходит, когда несколько программ пытаются установить блокировки на одной и той же странице в базе данных, при этом уже имеется блокировка на странице от других приложений. Блокировки устанавливаются, когда происходит обращение к данным, и зависят от уровня изоляции.
Например:
Методика уменьшения подобных проблем следующая.
В программах необходимо откорректировать порядок insert/update/delete для
устранения ситуаций одновременной блокировки.
A: Такой номер сообщения об ошибке недопустим. Однако существует правило для
определения реального номера ошибки. Для ошибок, чей номер выше 60000,
необходимо использовать формулу пересчета "(65536 - [Номер ошибки]) * (-1)". В
данном случае получаем (65536 - 63731) * (-1) = -1805 "TimeOut".
A: Ошибка 703 - это вероятно аппаратная проблема. Выполните "Check Database",
и посмотрите результат. Сервер базы данных не завершит своей работы, когда будет
обнаружена ошибка. Если "Check Database" обнаруживает ошибку в индекес, удалите,
а затем воссоздайте индекс. Если "Check Database" находит ошибку в странице, Вы
должны найти разрушенные строки. Создайте новую таблицу с такой же структурой,
как у разрушенной таблицы, затем вставьте все, не разрушенные строки в новую
таблицу, удалите старую разрушенную таблицу, и переименуйте недавно созданную
таблицу по имени удаленной таблицы. Этот способ позволит сохранить не
разрушенные данные. После того, как устранены все неполадки и создана резервная
копия, необходимо произвести UNLOAD/DROP DATABASE/CREATE DATABASE/LOAD или
REORGANZE. Эта операция полностью восстановит вашу базу данных. См. также:
http://www.centurasoft.com/support/tech_info/knowledge_base/sbsinfo/sbsrecov.html
A: Отрицательная ошибка означает, что сервер базы данных произвел RollBack. В
SQLBase RollBack может быть ограничен последней компилированной командой или
всей транзакцией. Положительная ошибка означает, что транзакция все еще активна
(то есть программа может выбрать, выполнять COMMIT либо RollBack).
A: Многие клиенты не работают с более новыми серверами, и возникновение
ошибки №00422 не возможно. Эта проблема возникает, когда пользователь Centura
Tem Developer переходит от SQLBase 6.x на SqlBase 7.x. Необходимо заменить
SQLWNTM.DLL и COMDLLS на более новые версии.
Q: После установки PTF10 для CTD 1.1.2 в программах стала возникать ошибка: cbi11.exe Ошибка приложения. Инструкция по адресу "0х0000434f" обратилась к памяти по адресу "0x0000434f". Память не может быть "read". Как можно устранить ошибку?
A: Короткий ответ:
Для ответа на Ваш явно вопрос недостаточно информации. Опишите место, оператор, действие, при котором возникает эта ошибка. Опишите среду (ОС, ЭВМ и др.) на которой возникает ошибка. Во время выполнения или при работе в режиме интерпретатора 'cbi11.exe? Попробуйте сделать .EXE, и запустить с DEPLOY.
Возможный распространенный ответ:
Для ответа на Ваш явно вопрос недостаточно информации. Опишите место, оператор, действие, при котором возникает эта ошибка. Опишите среду (ОС, ЭВМ и др.) на которой возникает ошибка. Во время выполнения или при работе в режиме интерпретатора 'cbi11.exe? Попробуйте сделать .EXE, и запустить с DEPLOY.
Кроме того, надеюсь, что Вас не обидят мои следующие рекомендации для попытки выхода из создавшегося положения.
Аксиома 1: 99.99% ошибок все-таки на совести программиста и разработчика. Если в это не верить, то программирование нужно бросать.
Аксиома 2: Выход из создавшегося положения есть, и чаще всего не один!
Ну а если всерьез, то попробуйте следующие действия, возможно, они выведут Вас из кризисной ситуации:
A: Имеется ошибка использования этой константы в SQLBase версии 6.X. В
SQLBase 7.0.1. это было исправлено.
A: NLM определил, что имеется другой сервер с таким же именем, которое
определено в SQL.INI файле сервера. ERROR.SQL файл определяет " Remedy:Verify
that the server being installed does not already exit on the network". Проверьте
SQL.INI файл сервера, в секции определения имени сервера. Измените имя.
Убедитесь, что нет других серверов в сети, использующих то же имя сервера.
A: Сообщение об ошибке 182 указывает, что SQLBASE не может создать резервный
файл. Убедитесь, что имеется достаточное дисковое пространство для копирования,
и каталог существует. Также убедитесь, что копия делается 'ON SERVER' и
правильно указан путь. На пример: Server1:sys\backups.
A: Это - временное событие. Ресурсы станут свободными через несколько минут.
A: Сервисом в Windows'95 - это обычные программы, запущенные в момент
начальной загрузки. Они выполнятся прежде, чем кто-либо зарегистрируется в
системе. Чтобы настроить сервис, запустите REGEDIT.EXE, и перейдите к разделу
HKEY_LOCAL_MACHINE_SOFTWARE\Microsoft\Windows\CurrentVersion\Runservices.
Вставьте новое элемент и дайте ему уникальное имя, типа "SQLBASESERVER".
Установите значение этого элемента равным полному пути и имени файла сервера
базы данных, например "C:\centura\dbnt1sv.EXE". Чтобы выполнялся
минимизированный запуск, перед указанием пути необходимо вписать "start/m".
A: Прежде чем появился SQLBase для Win'95, существовали локальные 16-разрядные SQLBase сервера (DBWSERVR.EXE и DBWINDOW.EXE). Они были довольно просты в настройке и управлении. С появлением SQLBase для Win'95 (DBNT1SV. EXE) возникло несколько соображений, которые следует принять во внимание:
A: Имеется системная переменная SQLBASE, которая указывает на каталог, в
котором SQLBASE должен искать файлы SQL.INI, ERROR.SQL, MESSAGE.SQL,
COUNTRY.SQL, и MAIN.INI. Эта системная переменная была создана для решения
проблем пользователей, имеющих многочиленные копии одних и тех же файлов на
компьютере.
Чтобы определить \GUPTA каталог, добавьте следующую строку в ваш
AUTOEXEC.BAT:
SET SQLBASE = C:\GUPTA
Если Вы устанавливаете системную переменную SQLBASE, просмотр будет проводиться только в этом каталоге. В противном случае, порядок поиска для вышеупомянутых файлов следующий:
A: Centura Software Corporation сертифицирует 32-разрядные программы для
использования в Windows'98. Для получения дальнейшей информации посетите:
http://www.centurasoft.com/support/tech_info/bulletins/win98warn.html
A: Существуют ошибки в руководстве. Общий порядок загрузки должен быть:
load dsapi
load spxs
load dfd
load
dll -------- это не учтено в начальном руководстве ----------
load
tlispxds
load exfmgrnw
load dbnwsrvr
A: Иногда происходит то, что последний журнал был в использовании базой
данных в момент аварийного отказа файлового сервера. В этом случае сервер может
удалить журнал в момент перезапуска. Восстановление журнала возможно с помощью с
FILER.EXE.
A: См. http://www.centurasoft.com/support/tech_info/knowledge_base/sbsinfo/fileli~1.html
Всякий раз, когда Вы получаете сообщение "Cannot load library ...", это
указывает, что Вы или не можете загрузить указанную DLL, или один из ее
компонент. Убедитесь, что всего компоненты существуют.
A: Рекомендуется сделать это, для обеспечения доступа к новым свойствам
сервера баз данных.
A: По умолчанию SQLBase использует 2155 порт, но использование ключевого слова LISTENPORT в SQL.INI в разделе протокола клиента, может изменять его. В зависимости от версии сервера настройки протокола должны быть подобны нижеуказанному:
[ <Servername>. < Tcp/ip протокол >]
Listenport
= <portnumber>
Если Вы не используете значение portnumber по умолчанию, оно должно быть явно указано в ключевом параметре SERVERPATH в SQL.INI клиента в разделе клиент. Настройки должны выглядеть следующим образом:
[ Winclient.wsock | win32client. ws32]
Serverpath =
<servername>. < Hostname | ip адрес >, <portnumber> /
<servicename1> | {*, servicenamen >}
Имеется пример, использования 32-разрядного сервера и 32-разрядного пользователя:
[ Dbntsrvr. ws32]
Listenport = 2500
[
Win32client. ws32]
Serverpath = server1,127. 0. 0. 1,2500/island,
video, payroll
A: Имеется документ, доступный по адресу:
http://www.centurasoft.com/support/tech_info/knowledge_base/sbsinfo/SQLBaseFileInfo.html
в котором присутствует список файлов, устанавливаемых с SQLBase DeskTop v7.
0.0, вместе с их описаниями.
Q: Где можно взять файлы, необходимые для поддержки русского языка в SQLBase (country.sql, country.dbs и т.п.)?
A: В официальных поставках SQLBASE нет этих файлов, однако по методике, изложенной в документации, их легко создать. Но (!!!) в принципе незачем! Использование этой национализации ничего практически не дает, хотя создает много проблем:
A: Вам необходимо создать локальную базу данных для SQLConsole, используя следующие шаги:
A: TLKNRTR может быть запущен, как программа, управляемая с помощью пакетных файлов DOS. Параметр INPUT=CommandFile передает в TLKNRTR набор команд, которые должны быть выполнены. В качестве примера можно воспользоваться следующим кодом:
@ECHO OFF
rem set variables
Set BkpDir = \\
machine\vol\backupdir
Set DB = MyDB
Set DBSRV =
MyServer
Set Auth = sysadm/password
rem create the
commandfile
echo set server % DBSRV %; > tmp.cmd
echo connect % DB % % 1 Auth %; >> tmp.cmd
echo
backup database from % DB % to % BkpDir % on server; >> tmp.cmd
echo release log; >> tmp.cmd
echo backup log from %
DB % to % BkpDir % on server; >> tmp.cmd
echo exit; >>
tmp.cmd
rem execute the commandfile
tlknrtr noconnect
bat input = tmp.cmd output = tmp.log
del tmp.cmd
A: Используйте следующие параметры:
SQLTALK BAT INPUT =
<skriptfile.wts> OUTPUT < = Logfile >
A: Вопрос не простой. Параметров много. Сначала совет: ничего не трогайте,
пусть работают значения по умолчанию. Сильно влияет на производительность
параметр cache и sortcache, его желательно сделать большим (15-32767 страниц),
но нужно учитывать возможности компьютера. И т.д. Все параметры описаны в
dba.pdf.
A: Для клиента в секции
[win32client.dll]
должно быть
задано:
comdll=sqlws32
Нужно обеспечить, чтобы библиотека
sqlws32.dll была доступна клиентским приложениям.
Для сервера нужно
указать:
[dbnt5sv]
servername=Server1,sqlws32
dbname=ISLAND,sqlws32
чтобы
для каждой используемой БД и библиотека sqlws32.dll была доступна
серверу.
Кроме того в секции серверного
SQL.INI
[dbnt5sv.dll]
должно быть
задано
comdll=sqlws32
Кстати, для одного сервера можно задавать
несколько протоколов и для одной базы тоже несколько протоколов связи (например
sqlwsspx). Более подробно это описано в документации - dba.pdf. Лучше всего
проверять подключение клиента с помощью утилиты SQLTalk, которая работает
прекрасно и по сравнению со старыми версиями не содержит ошибок.
A: Во-первых, нужно уточнить условия, при которых возникает эта ситуация, и обстоятельства применения функции:
В-третьих, при использовании SQLBase CENTURA/GUPTA разных версий совместно с SQLWindows я такую ситуацию не встречал и не получал информацию от других программистов.
В-четвертых, проверьте согласование по синтаксису использования связующих (BIND) переменных в запросе. В разных серверах и их версиях разные возможности и механизмы, так что могут быть ограничения. К сожалению, не так детально, как бы хотелось, знаком с особенностями Microsoft SQL Server.
В-пятых, возможно, вы используете триггеры или процедуры на сервере, для Microsoft SQL Server это критично, если формирование выборки не завершено (стр. 1-21,22,4-6 электронной книги ccon.pdf - книга Connecting Centura Objects to Databases из CTD 2.0 Matterhorn).
В-шестых, если вы используете ODBC, обратите внимание на настойки в
секции [odbcrtr] для Microsoft SQL Server, буферы и т.д.
Q: При использовании SQLWindows 5.0 с Microsoft SQL Server в первом окне таблица, заполняемая с помощью функции SalTblPopulate и TBL_FillNormal, т.е. все записи еще не прочитаны из базы и соединение остается открытым. Если в этот момент выполнить другой запрос (любой) с другим Sql Handle, то появляется ошибка 20055 (Connection is busy with results for another hstmt). Похоже, это связано со свойством DBPROP_MULTIPLECONNECTIONS MS SQL Server'а. Как решить эту проблему?
A: В документации (4-7, 4-19 электронной книги ccon.pdf - книга Connecting Centura Objects to Databases из CTD 2.0 Matternhorn, я думаю и в более ранних версиях документов это тоже есть - книги по Connection с другими СУБД) по этому поводу сказано:
(начало цитаты)
Microsoft SQL Server 6.x provides backend support for scrollable cursors (result set cursors that scroll both backwards and forwards). Consequently, you cannot create front end result sets (FERS) if you turn on result set mode.
You must turn on result set mode to have more than one result set open at the same time. If result set mode is off, you must fetch all of the rows from one result set before you can SELECT another result set. If you try to SELECT a result set before fetching all the rows of a previously retrieved result set, you get the error:
[Microsoft][ODBC SQL Server Driver]Connection is busy with result for another hstmt
(Конец цитаты)
Таким образом, желательно для вашего случая включить режим выборки (You must
turn on result set mode). Как это делается, Вам необходимо уточнить в
документации по Microsoft SQL Server.
A: Quest ищет файл "QUEST.INI", который включает описания всех кнопок.
Необходимо повторно установить SQLWINDOWS/QUEST, чтобы получить правильные
настройки. Либо можно указать правильный путь "questdir" в файле WIN.INI в
разделе [QUEST].
A: В новой версии QUEST нет, он существует только в 16-ти разрядном варианте. Вместо него предлагается использовать DataBase Explorer. Но если Вы работаете по сети, то можете, настроив правильно протоколы подключения, подсоединиться со старым QUEST 3.1 к новому серверу и он будет работать! Только зачем?
A: Object Compiler не был включен в поставку CTD 1.5, как сказано в сведениях к версии 1.5.1 "по причине нехватки времени". По этой причине в поставку не включены также Object Nationalizer и Lotus Notes QuickObject. Эти компоненты включены в поставку CTD 1.5.1
Q: CTD 1.1.2: При использовании экранных таблиц с динамическими (автоматическими) колонками, когда курсор уходит из отредактированной ячейки, таблица не получает сообщение SAM_Validate, как было в SQLWindows.
A: Это ошибка CTD 1.1.2. Она исправлена в PTF и в версии 1.5.
Q: Может ли SQLWindows может работать и через 32-хразрядный ODBC?
A: К сожалению прямой ссылки, на документацию о совместном использовании
SQLWindows (я понимаю как 16-ти разрядную версию) ODBC32 я пока не нашел. Но,
судя, по тому, как работают 16-ти разрядные приложения с 32-ти разрядными,
например QUEST и локальный SQLBase 7.1 или ERWIN 2.6 c ним же, то на этот вопрос
можно ответить отрицательно. Для SQLWindows нужен 16-ти разрядный ODBC. Кроме
того, из логики взаимодействия, конструирования и передачи параметров в
приложениях, следует, что без дополнительных "примочек" такое взаимодействие
невозможно.
Q: В программе Sqltalk не работает должным образом режим поиска в скрипте текста по образцу. При первоначальном нажатии кнопки "Найти далее" выполняется поиск образца. При повторном нажатии кнопки "Найти далее" поиск не осуществляется.
Повторный поиск выполняется успешно, если закрыть окно "Поиск" и заново открыть.
Можно ли исправить ситуацию? У нас:
- Sqltalk 7.0.1
- sqltne.dll 7.0.1 -PTF4
- sqlwntm.dll 7.0.1 -PTF4
- tlkc32.dll 7.0.1
A: У Вас, по всей видимости, используется библиотека - (tlkc32.dll 7.0.1) из
версии CTD 1.5.1, в которой действительно проявляется перечисленная ситуация.
Размер и дата создания этой библиотеки - 384 512 б и 01.03.1999. В предыдущей
версии этой DLL, из CTD 1.5 этой ошибки нет (Размер и дата создания старой
библиотеки - 378 880 б и 03.06.1998.). Не проявляется эта ошибка и в последующих
версиях CTD, даже в BETA 1 Matternhorn. Рекомендуем Вам вернуться к прежней
версии этой библиотеки, пока не появиться новый PTF, в котором данная ошибка
ликвидирована.
При необходимости мы можем переслать Вам рабочую версию библиотеки tlkc32.dll по e-mail или FTP.
Q: Несмотря на многие глюки, мы собираемся и дальше разрабатывать на CTD. Кстати, Вы не знаете, почему пакет заплаток на CTD 1.5.1 (именно! дословно:"Centura Team Developer 1.5.1 PTF1 SqlWindows32 PTF Download 4909") отказывается устанавливаться на свою (1.5.1) версию, сообщая, что не находит CTD 1.5._0_? Мы-то его скачали в слабой надежде что кое-какие ошибки среды вдруг да будут исправлены, но видно жить нам с ними дальше. Самое печальное, то что CTD 2, имея какие-то не особо необходимые новшества, наверно опять не устранит старые глюки. Например, на NT 4.0 sp4-5-6 (не на одной машине) CTD версий 1.0-1.5-1.5.1 одинаково валится через раз - на третий после запуска приложения в среде дизайнера, или при открытии новой копии дизайнера при вызове библиотеки из модуля.
A: Во-первых, к сожалению, сам не устанавливал заплатки, поэтому ответить на этот вопрос однозначно не могу, мы свяжемся со службой сопровождения CENTURA, и как только появится ответ его Вам перешлем.
Однако уже в этом положении можно попробовать что-то сделать. Хотя, возможно вы уже шли этим путем, осмелюсь предложить следующие варианты:
В-третьих, полностью разделяю Ваше мнение о том, что не будете отказываться от SQLWindows. Я рассматривал многое продукты для разработчиков информационных бизнес систем и нахожу в SQLWindows неоспоримые преимущества. Даже с научных позиций такого "пространственного" представления сложных программных образований, как OUTLINE, нет нигде, кроме того такого, профессионально (но не сложного для восприятия и запоминания) подобранного набора функций и возможностей, как в CENTURA/GUPTA, я не встречал в других даже очень мощных, а поэтому "сложных" средствах разработки приложений, не буду их перечислять.
В целом согласен, что превращение SQLWindows в супермощную систему (в том числе и для WEB) может ее сгубить. Будущее SQLWindows в вылизывании глюков, что достижимо в короткие сроки!
Q: Есть ли проблемы при миграции приложения с SWindows на CTD? Нужно ли корректировать код?
A: Проблем для перехода с SWindows на CTD нет. Все функции и операции поддерживаются. При этом выполняется процедура конвертирования в формат CTD. После конвертирования простым способом возврат в SWindows невозможен. Однако есть другие способы, так что приложение на CTD может быть конвертировано в SW, при условии, что не задействованы те возможности CTD, которых вообще нет в SW.
Q: Поддерживаются ли в CTD 2000 статдарты Internet: Java, Java Script, JDBC?
A: В состав CTD 2000 входит специальный драйвер для JDBC, так что JDBC поддерживается. Если говорить о Java и Java Script, то поскольку обеспечивается построение конечных HTML приложений, они могут содержать Java Script'ы и Java классы, но отладку их, естественно, необходимо производить в специализированных средствах, ориентированных на разработку Java приложений (BJ или VJ)
Q: Поддерживаются ли в CTD 2000 промышленные стандарты: TCP/IP, CORBA?
A: На основе протокола TCP/IP обеспечивается связь с удаленным сервером в сетях MS (NT, 95, 98, 2000). CORBA в явном виде не поддерживается, только через мосты COM и DCOM.
Q: Поддерживается ли в CTD 2000 стандарты Microsoft: ActiveX, OLE, DCOM, ODBC?
A: Стандарты ActiveX, OLE, DCOM, ODBC поддерживаются в CTD 2000. Кроме того, поддерживается OLE DB и COM объекты.
Q: Поддерживается ли в CTD 2000 элементы стандарта SQI-3, внедренные в настоящее время в Oracle, Informix, BD2?
A: SQLKBase базируется на SQL-92 и поддерживает этот стандарт полностью. Стандарт SQL-3 пока не является общепринятым. При работе CTD 2000 с соответствующими роутерами Oracle, Informix и BD2, если они соответвуют версиям СУБД, которые работают с SQLK-3, то все особенности должны поддерживаться, так как взаимодействие выполняется на SQL языке, команды которого к СУБД передаются в текстовом виде. Особенности могут быть только при визуальном проектировании запросов, что, на наш взгляд, не так существенно.
Q: Как загрузить БД при выдаче ошибки "Log disk space critically short"?
A:
1. Постарайтесь выгрузить вашу БД по частям и загрузить ее тоже
по частям в SQLBase 7. Можно по таблицам (там нужно вручную подправить в
выгруженном файле номер версии перед загрузкой)
2. Если БД выгружена
полностью, то можно подредактировать скрипт, вставив туда через определенные
промежутки команду COMMIT. Это тоже иожет помочь в вашем случае
3.
Если есть возможность, попробуйте загрузку в SQLBase 7.5
4. Имейте в
виду, что для LOG файлов нужно очень много места при таких базах данных.
Несколько скороспелое предположение: валиться сервер может и по причине
отсутствия в программах COMMIT, т.е. по такой же причине - недостатка размера
для LOG. Кроме того, проверьте физику харда. Вот дополнительный коплекс мер по
преодолению Вашей проблемы, включая возможно и ситуации, связанные с падением
сервера БД:
Client entry | Oracle | Informix | MS SQLServer | Sybase | IBM DB2 |
Empty string("") | NULL | Space | Space | Space(constant) NULL(bind var) |
Space |
NULL | NULL | NULL | NULL | NULL | NULL |
space | Space | Space | Space | Space | Space |
STRING_Null | NULL | NULL | NULL | NULL | NULL |
RULE | Rule-based optimization(index) |
CHOOSE | Cost-based optimization(index+amount of data+location of data) |
FIRST_ROW | Cost-based optimization for the first rows of the result set |
ALL_ROWS | Cost-based optimization for the entire result set |
The connect string can also contain a user name (UID) and password (PWD) for Quest or SQLWindows login dialog boxes. User name and password can be defined in three places: in ODBC. INI, in SQL. INI, and at runtime; each one of these locations takes precedence over its predecessor (that is, a UID and PWD in SQL. INI override any ODBC. INI entries). If no user name or password are specified in files, you are prompted at runtime for the security information. Values in the connect string may be separated by semi-colons (;).
For more information about ODBC. INI and the connect string, read your ODBC driver manuals.
Example This example specifies a database called DEMO. It connects to a data source called MYDB, which is defined in ODBC.INI with SYSADM/SYSADM as the user name and password.
Не вдаваясь в детальный перевод, можно сказать, что информация об удаленной БД ODBC дублировалась в нескольких местах: ODBC.INI и SQL.INI. Для последних версий SQLBase эта неопределенность была преодолена. В документации на SQLBase 7.1 - 7.5 уже, хотя и коротко сказано свежующее ( электронная книга Connecting Centura Objects to Databases - ссоn.pdf, раздел Connect search order стр. 1-8):
(начало цитаты)
A slight variation applies to SQLRouter/ODBC and SQLRouter/Microsoft SQL Server. Instead of searching the [odbcrtr] section of SQL.INI for a remotedbname statement, the application tries to find an ODBC data source name in the ODBC.INI file that matches the target database name. Otherwise, the processing is the same as for all the other SQLRouters.
(конец цитаты)
Все настройки для удаленных БД на базе ODBC в частности для SQLRouter/ODBC и SQLRouter/Microsoft SQL Server введены в файл настроек ODBC.INI (или в DDC.INI для последних версий CTD. DDC database connectivity configuration). Нужно посмотреть соответствующие разделы документации, связанные с настройкой драйверов ODBC на вашем компьютере. В версии 7.5 SQLBase этот раздел [ODBCrtr] может использоваться для определения параметра buffrow(и других) для контроля за буферизацией ODBC взаимодействия ( см. стр. 8-11, 4-8, 4-10 и др. электронной книги ccon.pdf - книга Connecting Centura Objects to Databases из CTD 2.0 Matternhorn). Кроме того, старый раздел поддерживался для коммуникаций в OS/2 и роутеров ДОС dbxlocal, dbrouter и dbxcompbo.
Q: Проблема с работой CTD 1.5.1. под Oracle 8.1.5.
A: В Интернет на сайте http://www.centurasoft.com/ есть такая
информация. Хотя Ваша проблема, по-моему решена, т.к. новых звонков от Вас не
последовало, я все-таки решил Вам ее сообщить в первозданном виде. Может быть,
она будет полезна в дальнейшем.
Tech Alert
September 10, 1999CTD 1.1.2 or 1.5.x and Oracle 8.1.5 ( Oracle 8i )
Description:
CTD Applications fail to connect to Oracle 8i (also called Oracle 8.1.5)
Solution:
There are actually two solutions to the problem.
You can install the Oracle NET8 client software from Oracle 8.0.5 and it will
communicate correctly with Oracle 8i. You can also use the SQL*Net 2.3 client
software from Oracle 7.
-OR-
Use the Oracle 8i (8.1.5) client software
and manually add the following entry into the Registry at location:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\
Add the following string value:
ORAOCI ORACLIENT8.DLL
and you will be able to successfully use the Oracle 8i (8.1.5) client
software. You will still
need to run the VIEW8.ORA and PLSVIEW8.ORA scripts,
logged on as "SYS", in order to use the Database Explorer with Oracle 8i.
Note: This information only applies to Centura 32-bit applications, not to
SQLWindows
16-bit applications, because the Oracle 8i client software is
exclusively 32-bit.
Q: При переходе на новую версию (с CTD 1.5) возникла следующая проблема: в новой версии, в отличие от старой, нельзя запускать хранимые процедуры Oracle операторами SqlOraPLSQLPrepare и SqlOraPLSQLExecute. Что нужно делать?
A: Действительно - в первоначальной версии CTD2000 были недочеты при выполнении этих функций. Для ликвидации данной ошибки нужно с сайта centurasof.com скачать PTF1. После установки его эти ошибки проявляться не будут.
Q: На некоторых машинах, с абсолютно идентичными DLL, SQL.INI файлами и установкой ODBC, производится попытка установки связи. На некоторых машинах выдается ошибка, на других подключение безаварийно. Как можно устранить эту проблему?
A: Эта ошибка связана с проблемой определения путей загрузки DLL. Необходимо
исследовать, как загружаются необходимые модули на машинах с нормальной свяью и
сравнить со сбойными машинами. Некоторые драйверы устанавливает ODBC
Администратор(ODBC32. DLL). Это приводит к несоответствию версий ODBC Engine.
A: Если необходимо использовать "begin transaction" и "commit transaction" (или "rollback transaction") в сохраненных процедурах для MS SQL Server(ver 6.0, или 6.5) включите AUTOCOMMIT перед вызовом сохраненных процедур:
Call OdrPrepareProc(hSql, 'Call myproc ', ")
Call
SqlSetParameter (hSql, DBP_AUTOCOMMIT, TRUE, ")
Call SqlExecute
(hSql)
Call SqlSetParameter (hSql, DBP_AUTOCOMMIT, FALSE, ")
Если нет установки AUTOCOMMIT ON, Centura SQL/API неявно добавляет "begin
tran" прежде, чем вызывается любое DML утверждение и "commit tran" когда
вызывается SqlImmediate('COMMIT').
Процедура сообщит об ошибке возврата
транзакции:
Create procedure myproc
AS
If @@ TRANCOUNT <
> 0
begin
return -1 - - error
end
...
begin tran
-- make some DML here
.....
If <ERROR>
rollback tran
else
commit tran
A: Использование '||' не отрабатывается.
SQL Server использует знак '+'
для конкатенации столбцов, как показано в следующем примере:
SELECT colA +
colB + colC FROM tableD INTO :sVar
Q: Нет доступа к JDBC-драйверам для работы. Что неправильно?
A:
Чтобы проверить подключение JDBC, используйте утилиту JDBCTest, доступную на
http://www.intersolv.com/
Q: Можно ли подсоединяться к SQL Base через ODBC из Delphi, Crystal Reports, Centura Report Builder, Centura Database Explorer?
A: Каких-либо проблем при соединении из Delphi, Crystal Reports к SQL Base через ODBC не возникает, но ODBC нельзя использовать для подключения из родных продуктов Centura (Centura Report Builder, Centura Database Explorer). Необходимо использовать другие протоколы: APIPE, WINSOCKS, IPX/SPX, NETBeui. ODBC используется для соединений от продуктов третьих фирм, таких как MS-SQL Server, Sybase, Oracle, Excel, etc...
Невозможность подключения из родных продуктов поясняется ниже: You do
SQLConnet() (basic SQLAPI call)
- This opens SQL.INI and read thru it.
-
comdll=sqlodb32 -> call ODBC admin -> call SQLBase ODBC driver
-
SQLBase ODBC Driver calls the SQLAPI again and there you go...
A: Детальная информация по этой теме доступна по адресу:
http://www.centurasoft.com/support/tech_info/bulletins/access~1.html
A: При использовании приложений, которые создают SQL-запросы подобно "INSERT
INTO "INETLOG"("ClientHost", ..) ... " для вставки данных в SQLBase, существует
проблема в том, что кавычки в именах столбцов и таблиц не воспринимаются.
Обходным вариантом является следующий шаг. Необходимо создать таблицы и столбцы
с кавычками в именах.
Например:
CREATE TABLE "INETLOG"("ClientHost" char (255), ...)
В SQLBASE.
Либо переименуйте уже существующие таблицы.
A: Невозможно проверить все ODBC драйверы. Если драйвер совместим с ODBC 2.0,
то он должен работать. Если имеются трудности с типами данных, обратитесь к
интерактивной справке для получения информации о DCC.INI.
A: Это может быть выполнено с помощью непосредственного подключения ODBC API.
Либо с помощью использования ODBCTESTX.OCX(свободно распространяемый ActiveX
компонент), который работает с ODBC API.
A: Centura сохраняет информацию об ODBC в файле по имени GUPTA.INI. Это, как
предполагается, делает соединение с источником данных быстрее. Этот файл
хранится в каталоге, который содержит ODBC32.DLL. Рекомендуется удалить
GUPTA.INI прежде, чем будет соединение с ODBC источником данных. Это
предотвратит ошибку, при правильно сконфигурированом ODBC.
A: Centura сохраняет информацию об ODBC в файле по имени GUPTA.INI. Это, как
предполагается, делает соединение с источником данных быстрее. Этот файл
хранится в каталоге, который содержит ODBC32.DLL. Рекомендуется удалить
GUPTA.INI прежде, чем будет соединение с ODBC источником данных. Это
предотвратит ошибку, при правильно сконфигурированом ODBC.
A: Centura сохраняет информацию об ODBC в файле по имени GUPTA.INI. Это, как
предполагается, делает соединение с источником данных быстрее. Этот файл
хранится в каталоге, который содержит ODBC32.DLL. Рекомендуется удалить
GUPTA.INI прежде, чем будет соединение с ODBC источником данных. Это
предотвратит ошибку, при правильно сконфигурированом ODBC.
A: Для версии 6. 1. x утверждение, подобное 'SELECT NAME AS CUSTNAME FROM TABLE' всегда возвращает первоначальное имя столбца. Хуже, когда вычисляемые столбцы, агрегаты и т.д. в запросе не возвращают заголовки вообще. SQLBASE 7.0.1 имеет новый ODBC драйвер, версии 3.01.0006. Используя этот драйвер можно прекрасно выполнять запросы типа:
SELECT COMPANY_NAME AS NAME FROM COMPANY;
SELECT INVOICE_NO,
SYM(ITEM_PRICE) AS X, AVG(ITEM_PRICE) AS Y FROM INVOICE_ITEM GROUP BY 1;
SELECT @LEFT(COMPANY_NAME, 4) AS SPLITNAME FROM COMPANY;
Q: Quest при обращении к базе дает ошибку Invalid SET parameter. А WinTalk вообще не видит базу по ODBC.
А: Нужно проверить настройки драйверов ODBC Quest, совершенно точно эта программа (Quest) работает с ODBC наборами. Возможно, потребуется переустановить драйверы, а затем определить настройки соответствующих наборов данных. С WinTalk, как с промежуточным продуктом, были проблемы с доступом в БД и, в частности, ODBC наборами. Используйте SQLTalk с обновленными DLL и все возможности, даже LOAD и UNLOAD, будут доступны. Из SQLWindows доступ к ODBC наборам также работает нормально (при правильной настройке драйверов).
Дополнительную информацию Вы можете получить в компании Interface Ltd.
Defining Centura Team DeveloperTM 2000
Centura Team Developer - это передовая интегрированная среда разработки (Integrated Development Environment, IDE), предлагаемая компанией Centura для создания 32-разрядных бизнес-приложений на платформе Windows. Centura Team Developer предоставляет профессиональным разработчикам средства, необходимые для создания масштабируемых отказоустойчивых распределенных бизнес-приложений для Веб и клиент/серверных вычислений. CTD 2000 обеспечит вашему коллективу разработчиков мощь, продуктивность и гибкость, необходимые для создания приложений, удовлетворяющих стратегическим бизнес-требованиям.
В современной программной среде электронной коммерции разработчикам следует стремиться удовлетворить потребности самых разнообразных клиентов. Для поддержки разработчиками веб-клиентов, полностью автоматизированных клиентов, работающих без участия человека, мобильных устройств и других, пока еще не изобретенных клиентов, приходится выходить за рамки персональных компьютеров, использующих Windows. В результате на разработчиков ложится достаточно тяжелая ноша. Они ищут пути расширения существующих бизнес-систем для обслуживания как внутренних, так и внешних заказчиков. Усиление отдачи от существующих данных и систем является решающим фактором сохранения времени, денег и ресурсов. Centura предоставляет инструменты, помогающие разработчикам создавать, разворачивать и объединять программные продукты с системным ядром бизнес-логики.
Scalable Application Language. Расширяемый язык приложений (Scalable Application Language, SAL) - это сердце Centura Team Developer. Будучи полностью объектно-ориентированным и включая более 700 функций, SAL имеет все возможности для реализации самых сложных бизнес-транзакций. Кроме того, SAL обеспечивает разработчикам полный контроль над средой выполнения программ, включая доступ к операционной системе, манипуляцию внешними источниками данных, интеграцию с другими приложениями и пакетами.
Какие типы приложений можно строить с помощью CTD 2000?
Centura Team Developer - это идеальное средство для проектных коллективов, строящих вертикальные бизнес-приложения, для которых нужны расширенные возможности доступа к данным и усложненная бизнес-логика, в особенности, когда необходимо адаптировать приложения к быстро меняющимся требованиям. В качестве примеров стандартных вертикальных приложений можно назвать системы планирования ресурсов предприятия, автоматизации торговли, управления взаимоотношениями с клиентами, производства, страхования, банковского дела, системы снабжения, а также юридические и системы и документооборота.
Не исключено, что ваша деятельность связана с разнообразными приложениями и системами, от электронной почты до веб-серверов, от электронных таблиц до текстовых процессоров, программ планирования и так далее. Centura Team Developer обеспечивает плотную интеграцию с внешними приложениями и технологиями, что позволяет создавать новые и впечатляюще выглядящие системы, развивая и расширяя любые существующие приложения и используемые вами технологии. Например, можно создать более плотные рабочие связи между коллективами разработчиков, используя имеющуюся у вас систему электронной почты и средства Centura Team Developer для разработки технологических решений. Или можно встроить веб-броузер или ftp-клиента в приложение Centura Team Developer и, тем самым снабдить пользователей вашего предприятия всем разнообразием новых данных. Поскольку создаваемые вами приложения увеличиваются в размерах по мере развития вашего бизнеса, вы можете инкапсулировать бизнес-логику в компоненты COM и развернуть их с помощью Microsoft Transaction Server для получения возможности n-звенного масштабирования.. И конечно же, CTD открыт для любых приложений, использующих такие стандарты Microsoft, как COM, DCOM или ActiveX.
Что такое Team Object Manager и как он повышает эффективность разработки?
При разработке приложений для предприятия вам может понадобиться скоординировать усилия не одного-двух программистов, а целой группы. Поэтому Centura Team Developer поставляется с Team Object Manager, представляющим собой полнофункциональную систему управления исходным кодом и компонентами, которая координирует работу вашего персонала с программным кодом и данными. Основываясь на центральном репозитарии, Team Object Manager хранит все компоненты и обеспечивает полный контроль версий для управления конфигурацией проекта. Кроме того, мощный инструмент отслеживания компонентов помогает найти многократно используемые объекты, что позволяет сохранить время и деньги для будущих разработок.
Улучшения по сравнению с предыдущими версиями
Что можно сделать c помощью CTD 2000 сверх того, что позволяли предыдущие версии?
Новые возможности CTD 2000 позволят отойти от традиционной разработки "толстых" (многофункциональных) клиентов к разработке распределенных приложений. Суммируя вышесказанное, разработчики получат следующие возможности в рамках новой версии CTD:
С какими базами данных может соединяться CTD 2000?
Взаимодействие баз данных является решающим компонентом практически любого бизнес-приложения. Centura Team Developer может естественным образом подключаться ко многим базам данных, включая Oracle, SQL Server, Sybase, Informix, SQLBase, DB2 и CA-OpenIngres, а также ODBC. Подобная коннективность означает, что ваши приложения могут манипулировать любыми объектами родной базы данных (например, хранимыми процедурами), или параллельно соединяться не только с разными однотипными базами данных, но и с базами данных различных производителей. Наряду со встроенной коннективностью, также важна родная языковая поддержка доступа к базе данных SQL. Программисты, использующие другие языки, постоянно утверждают, что какие бы преимущества не предлагались этими языками, все же они отдают предпочтение Centura's Scalable Application Language (SAL) для доступа к базам данных. Если данные являются основой вашей деятельности, а так чаще всего и бывает, то SAL - это язык программирования для вас.
Как насчет данных предприятия?
CTD способен подключаться к любым данным предприятия, которые поддерживают интерфейс COM. Например, можно объединить приложение CTD с Microsoft Outlook и получить возможность использовать в своем приложении функции планирования и электронной почты. Кроме того, CTD предоставляет библиотеку e-mail, так что вы сможете соединяться с серверами e-mail непосредственно через MAPI. CTD обеспечивает подобную библиотеку для Lotus Notes, а также источник OLE DB, который позволяет соединяться с Lotus Notes как с источником данных SQL. Более того, другой источник OLE DB дает возможность запрашивать любой источник данных XML, как если бы это был источник данных SQL. Это значительно упрощает программирование приложений электронной коммерции business-to-business. Centura также предоставляет Interface for R/3 (поставляется отдельно), который обеспечивает программистов утвержденным BAPI способом взаимодействия с данными и с бизнес-логикой в системе SAP R/3.
Совместимы ли Centura Interface для R/3 и CTD 2000?
Да. Centura Interface для R/3 не зависит от версии Centura Team Developer; Версия 2 Interface для R/3 сертифицирована для CTD 1.1.2, CTD 1.5.1, и CTD 2000.
Можно ли настроить среду разработки Centura так, чтобы повысить продуктивность нашего коллектива?
Любой желающий избежать выполнения повторных задач и упростить разработку оценит выгоду утилит и мастеров. Centura Team Developer является единственным инструментом на современном рынке разработки приложений, позволяющим создавать собственные расширения среды разработки.
Centura Developer Extensions Kit (CDK) дает возможность разрабатывать дополнения к среде разработки Centura, что может упростить выполнение сложных и повторно возникающих задач, автоматически генерировать код, или что бы то ни было для ускорения и облегчения процесса разработки. Вы можете создать собственных мастеров проектирования приложений - инструменты профилирования кода, генераторы кода и расширенные отладчики. В настоящее время практически в любой деятельности необходимо проанализировать, как на нее влияет Веб. Во многих видах деятельности ищутся пути улучшения интерактивности собственных сайтов Intranet, Extranet, или Internet. Именно поэтому Centura Team Developer предоставляет опцию для установки одного и того же приложения и как стандартного приложения Windows, и как веб-приложения.
Любое приложение CTD, построенное с помощью библиотеки классов Web QuickObjects может быть развернуто в Веб с помощью Web App Manager - предлагаемого Centura сервера приложений для Веб. Эти приложения опознают, запущены ли они как приложения Windows или Веб, и показывают интерфейс пользователя как нормальный Windows User Interface или как представление HTML в броузере с теми же полями, кнопками и конфигурацией экрана. CTD включает патент Web App Manager на разработку, так что программисты могут тестировать свои приложения, предназначенные для Веб. Возможности Web App Manager включают настройку и распределенную архитектуру, что позволяет справляться с возможно высокой частотой использования веб-приложений. Благодаря двойной установке Centura в расчете на Веб и Windows, вам не нужно дважды писать одно и то же приложение.
Мы интернациональны. Должен ли я хранить более одной версии исходного кода?
Нет. Если ваша деятельность глобальна, вы понимаете необходимость предложения вашего приложения на иностранных языках.
Centura's Object Nationalizer позволяет переводить уже скомпилированные приложения, совершенно не меняя исходный код. Это значит, что вам надо хранить лишь одну версию кода приложения, независимо от того, сколько предлагается переводов этого приложения на другие языки. Совместно используя Centura's Object Nationalizer с технологией установки Centura's Web, можно гарантировать доступность по всему миру опубликованных в Internet приложений на соответствующих языках. И при этом вам необходим один единственный источник.
Определение терминов, используемых при разработке (и MicrosoftR)
Что такое объектно-ориентированный анализ и проектирование?
Основой объектно-ориентированного анализа и проектирования является разбивка проекта на логические компоненты. Это также основа компонентных программ, т.е. программ, составленных из стандартных модулей.
Компонент - это многократно используемая изолированная часть программы в двоичной форме, не зависящая от приложений. Компонент можно относительно легко вставить в любое приложение.
Что такое разработка на основе компонентов?
Разработка на основе компонентов - это метод разработки приложений, быстро превращающийся в стандарт. Популярность интернета и серверов приложений питают собой отход от традиционных приложений для "толстого" клиента, в которых каждая машина клиента запускает копию бизнес-программы, к распределенной архитектуре "тонкого" клиента, где ресурсоемкая часть бизнес-логики обрабатывается на различных серверах баз данных и серверах приложений.
Строя приложения из компонент, разработчики могут сделать их модульными. Это делает возможным совместное использование одного компонента в разных системах и доступ разных клиентов к одному и тому же компоненту. Если один элемент бизнес-логики не работает, или же изменяются некоторые правила бизнеса, разработчику достаточно переделать один компонент. Если бы он дублировал одни и те же выполняемые функции во всех приложениях, ему понадобилось бы изменить каждую из них. Это также означает, что нет нужды одновременно загружать в память все приложение целиком, так что система становится более производительной и масштабируемой.
Разработанный Microsoft протокол COM (Component Object Model) обеспечивает стандартный способ взаимодействия компонентов. Компоненты взаимодействуют между собой в рамках модели клиент/сервер. COM определяет стандартизованные средства создания компонент и управления коммуникациями между этими компонентами и их клиентами.
В отличие от традиционных объектов, компоненты могут взаимодействовать через инструментарий и сети. Стандартизация коммуникаций означает, что приложение ищет объект COM в процессе выполнения программы, обнаруживает его интерфейс и знает, как с ним взаимодействовать.
Во взаимосвязанном мире, в котором клиентам Windows, Веб и всем другим типам клиентов требуется доступ к одним и тем же данным и одной и той же бизнес-логике, наиболее практичным решением этой задачи является построение приложений на основе компонентов. DNA - это модель разработки приложений Microsoft для платформы Windows. Это конструкция для построения трехзвенных компонентных приложений, которые можно распространять по сети. Другими словами, DNA обеспечивает каркас для компонентной разработки на платформе Windows.
Как работает Windows DNA и почему он содержится в Centura?
Microsoft и Centura совместно идут к общей цели - обеспечить способы для создания данных и бизнес-логики, доступных из Веб, а также из не-Windows клиентов, таких как сотовые телефоны, PDA, или любое подключенное интеллектуальное устройство. Centura выбрала путь Microsoft для построения приложений, основанных на компонентах - Microsoft DNA. Архитектура разработки в Windows DNA основана на модели центрального сервера: базы данных и бизнес-логика находятся на серверах, с которыми соединены как локальные, так и удаленные тонкие и толстые клиенты. Windows DNA включает технологии Microsoft, такие как COM, Microsoft Transaction Server, сервер IIS Web и OLE DB для доступа к базам данных, а также открытые стандарты для обмена данными, такие как XML.
Microsoft Transaction Server. MTS объединяет брокер объектных запросов (object request broker ORB), администратор ресурсов и диспетчер транзакций. Он обеспечивает автоматическое управление транзакциями, связывание баз данных, развязку процессов, автоматическое объединение потоков, автоматическое управление копиями объектов, разделение ресурсов, защиту, основанную на правилах, контроль транзакций в распределенных приложениях, и еще многое другое. Это обслуживание необходимо для масштабирования компонентов на стороне сервера и поддержки значительного числа параллельных запросов клиентов. MTS автоматически выполняет все обслуживание, так что разработчикам приложений не нужно писать специальный код. Разработчики просто устанавливают свои объекты COM на сервере MTS. Когда объект COM понадобится приложению клиента, MTS создаст его копию и будет управлять его использованием. Приложение клиента просто использует объект COM как обычно. Следовательно, разработчик может создавать компоненты для сервера, которые ведут себя так, будто в каждый момент присоединен только один клиент.
С чем связан весь этот интерес к MTS?
MTS становится составной частью компонентных приложений в Windows. Он встроен в операционную систему Windows 2000 и заведомо надежно работает на этой платформе. Когда разработчики создают компонентные приложения, переходя в бизнес-логике от толстых клиентов к серверу, становится более существенной необходимость расширяемого управления в реальном времени этими серверными компонентами. Согласно прогнозам аналитиков, к 2001 году все будут использовать какой-нибудь вид менеджера объектов. Некоторые уже их используют, а многие разработчики экспериментируют. Microsoft на определенное время предоставил Microsoft Transaction Server (MTS). Centura согласна с аналитиками в том, что в течение года почти все новые приложения, создаваемые для платформы Windows, будут в некотором объеме использовать MTS, даже если они также пользуются другим объектным менеджером.
Есть ли при работе с MTS новые подходы к проектированию?
Создание расширяемых компонентных приложений для MTS или любого другого объектного менеджера, на самом деле, требует некоторый новый взгляд на проектирование от разработчиков, привыкших строить приложения для толстых клиентов. Например, для того чтобы несколько клиентов могли параллельно использовать компонент MTS, он должен быть расширяемым. Чтобы сделать объект расширяемым, его надо сделать не имеющим определенного состояния (stateless). Такой stateless-объект не хранит промежуточное состояние во время ожидания следующего вызова от клиента. Каждый вызов метода независим, и объект не хранит память о предыдущих вызовах. Компоненты без состояния не могут зависеть от событий.
Кроме того, для обеспечения максимальной расширяемости разработчики должны убедиться, что любые внешние функции также запускаются через COM. Например, если компонент обращается к базе данных, генерирует отчет, или запускает другое приложение. В противном случае компонент окажется в таком режиме, в котором он не является многократно используемым компонентом без состояния, что окажет соответствующее воздействие на расширяемость.
Наконец, используемые вами базы данных должны поддерживать MTS для участия в транзакциях. В зависимости от базы данных, вам может понадобиться предпринять шаги для привлечения связей базы данных с транзакцией.
OLE DB заменяет ODBC в качестве нового стандарта Microsoft для открытой связности баз данных. Считайте OLE DB разновидностью SQL API на основе COM. Он использует "трубопровод" COM и DCOM в Windows для связывания клиента с источником данных. Будучи основан на COM, он работает в среде Microsoft Transaction Server. Так как многие источники OLE DB напрямую связаны с API поставщиков баз данных, они превосходят ODBC по техническим характеристикам. Поскольку и поставщики баз данных, и компании, разрабатывающие средства подключения ним, ищут провайдеров OLE DB, последние будут часто модернизироваться для получения преимуществ от новых возможностей источников данных.
Если вы разрабатываете COM-компонент для участия в транзакциях MTS, следует использовать потребителя OLE DB. В противном случае вы будете самостоятельно управлять транзакциями базы данных, что может повлиять на расширяемость ваших компонент, работающих на MTS. Еще одно преимущество OLE DB состоит в том, что эта технология не вынуждает клиента работать только с реляционным представлением данных. Это позволяет связываться с неструктурированными источниками данных типа plain text или e-mail, или нереляционными источниками данных типа Lotus Notes. Интерфейс Microsoft's Active Data Objects (ADO), являющийся интерфейсом COM высокого уровня, расположенным поверх OLE DB, открывает программисту функции для получения данных из этих источников без использования SQL. Однако, разработчики CTD, заинтересованные в доступе к источникам данных OLE DB с помощью SQL, могут сократить время программирования наполовину, предпочитая интерфейсу ADO высокоуровневую поддержку SQL, встроенную в язык SAL.
Специфические вопросы для разработчиков
Как создавать веб-приложения с помощью CTD 2000?
Сейчас существует два способа построения веб-приложений с помощью CTD. Вы можете создать визуальные объектно-ориентированные серверные приложения, автоматически отражающие содержимое Веб, или невидимые объекты COM, использующие бизнес-логику и динамические данные для основанных на использовании шаблонов серверов приложений типа ASP и Cold Fusion.
Я строю распределенное приложение для Internet. Следует ли мне создать приложения Web apps для Web App Manager или компоненты COM для MTS?
Почему не сделать и то и другое? Для максимальной расширяемости и многократного использования можно ввести свою бизнес-логику в компоненты COM, развертываемые на Microsoft Transaction Server. Тогда вы сможете использовать ту же бизнес-логику не только из Веб, но и из других клиентов. В качестве пользовательского веб-интерфейса можно воспользоваться любым популярным сервером веб-приложений, объединяющим компоненты COM, например, Active Server Pages, Cold Fusion, или SilverStream. Или можно вставить свои компоненты COM в приложения Web Centura Web, отображающие динамически генерируемый веб-контент, например, XML, DHTML или cookies.
Хотя это может быть сделано с помощью макроязыка на сервере, вы, вероятно, обнаружите, что Centura's Scalable Application Language (SAL) обеспечивает большую мощность, большие возможности повторного использования и расширенные средства управления.
До сих пор я ни разу не создавал COM-объект на каком-нибудь языке программирования. Трудно ли это?
Как и для любого принципа программирования, для начала рекомендуется достичь элементарного понимания COM. Centura поставляет некоторую документацию по COM, в которой содержатся ссылки на другие материалы. Кроме того, имеются возможности обучения и консультирования по Centura.
Я уже создавал COM-объекты с помощью Visual Basic. Похоже ли на это создание COM-объектов с помощью CTD 2000?
Centura Team Developer обеспечивает большую гибкость по сравнению с Visual Basic. Напрмер, Visual Basic позволяет разработчикам создавать единственный интерфейс COM по умолчанию для каждого сервера COM, а в качестве клиента использует только интерфейс по умолчанию. CTD дает разработчикам возможность создавать и использовать несколько интерфейсов COM.
Java является языком программирования, подобно C++, Cobol, или Pascal. Как и эти языки, Java - это язык программирования низкого уровня. Centura поставляет высокоэффективный язык программирования 4GL, называемый SAL. Мы не предлагаем возможность трансляции кода SAL на другие языки программирования. Однако стандарт COM обеспечивает взаимодействие между программами, написанными на разных языках. Создавая объекты COM на SAL, вы гарантируете, что ваш код сможет взаимодействовать с кодом, написанным на других языках, включая Java.
Большинство инструментов разработки Java предлагают способы использования объектов COM, написанных программистами на SAL. Более того, программисты на Java могут писать объекты COM для использования программистами на SAL. Кроме того, взаимодополняющие программные продукты партнеров Centura позволяют программистам на SAL использовать объекты, написанные на Java, которые явно не используют интерфейс COM.
Centura Team Developer - это торговый знак Centura Software Corporation. Данный здесь список сторонних компаний и продуктов - это заявленные торговые знаки соответствующих владельцев. Некоторые программные продукты, поставляемые Centura Software Corporation и ее дистрибьюторами, содержат патентованные программные компоненты других поставщиков программ. Сюда включено следующее, хотя это не обязательно полный список.
MicrosoftR, и WINDOWSR являются заявленными торговыми знаками Microsoft Corporation. R/3 - это заявленный торговый знак SAP AG.
HTML, DHTML, XML, XHTML - это торговые знаки или заявленные торговые знаки W3CR, World Wide Web Consortium.
Return to http://gupta.narod.ru/