Последнюю версию FAQ можно найти на сайте http://www.interface.ru/

FAQ по продуктам Centura



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, динамика объектов и т.д.) и исправлены предыдущие ошибки. Можно привести еще много аргументов, но и эти должны быть услышаны.


Q: Где можно найти дополнительную информацию о продуктах компании Centura?

A: На сайтах http://www.centurasoft.com/ и http://www.interface.ru



Q: Где я могу найти информацию о серверах баз данных компании Centura и проблеме 2000 года?

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()" так же может быть интересным



Q: В каких программных продуктах фирмы Centura решена проблема 2000 года?

A: Проблема 2000 полностью решена для следующих версий самых популярных программных продуктов:

Всем пользователями более ранних версий продуктов Centura рекомендуется сделать upgrade на любую из последних версиий. В настоящий момент возможна поставка:

Q: Перед нами стоит задача написать систему производственной себестоимости (СПС). На данный момент мы пытаемся выбрать подходящее программное обеспечение для этой задачи.

A: Короткий ответ:

Ответ на поставленный вопрос зависит от целого ряда факторов и условий, уточнение которых поможет выбрать подходящее программное обеспечение для поставленной задачи. По грубой оценке задачи можно предложить проверенные на практике многих разработчиков средства: для разработчиков Centura Team Developer (1.2 - 2.0) - SQLWindows/SQLWindows32, а для хранения данных SQLBase 6.1/7.5.

Возможный распространенный ответ:

Ответ на поставленный вопрос зависит от целого ряда факторов и условий, из которых можно выделить следующие главные:

  1. Ориентировочные объемы БД (Мб - Гб)
  2. Количество пользователей в системе (возможно и однопользовательский вариант)
  3. Предполагаемая стоимость работ
  4. Квалификация разработчиков и программистов, доступных для проекта
  5. Требования к быстродействию, надежности и стоимости при эксплуатации системы.
  6. Другие факторы, существенные для конкретной реализации.
Если хотя бы ориентировочно определены перечисленные факторы, то выбор состоит все-таки из ограниченного числа вариантов:
  1. Большие, затратные системы с большим числом рабочих мест, иерархической структурой, разработчики высокой квалификации, большие затраты на эксплуатационное ПО, трудоемкой эксплуатацией, числом рабочих мест >20, длительным этапом проектирования, разработки и внедрения - СУБД - ORACLE и его родные средства разработки программного обеспечения (либо SYBASE, либо INFORMIX).
  2. Системы средней размерности, число рабочих мест от 3-15, разработчики квалификации средней или чуть выше, сносными требованиями проектированию, затратам на ПО и стоимости эксплуатации, легкость в сопровождении - СУБД SQLBase и средства разработки SQLWindows/ SQLWindows32 (Centura Team Developer CTD 1.5 - 2.0) фирмы CENTURA/Gupta ( либо MS VB + MS SQLServer). Кроме того, для данного случая может быть хорошим с точки зрения быстродействия и стоимости вариант использования RDM/ROM(средства разработки RAIMA DATA MANAGER и разработки RAIMA OBLECT MANAGER), С++ (например Inprise) и Velocis(СУБД) при числе рабочих мест до 5-ти.
  3. Для малых систем, однопользовательских систем и систем с числом РМ до 5-ти, эффективным будет применение С++ (Borland C++Builder предпочтителен по надежности ПО), правда для квалифицированных программистов, и API для работы с БД (DBD - BDE и др.), а также средств RDM/ROM (или средств этого же уровня) + СУБД Velocis, при требованиях к программистам чуть ниже целесообразно использование продуктов CENTURA (SQLWindows/ SQLWindows32 Centura Team Developer CTD 1.5 - 2.0), которые имеют и однопользовательский вариант и развитые возможности выхода на С/С++. Возможным вариантом является применение VB и настольных СУБД (MS Access) для программистов более низкой квалификции.
  4. Самым дешевым и простым способом является использование систем электронных таблиц типа MS EXCEL, однако, никакой гибкости, ненадежность и сложности в обучении пользователей гарантированы.

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: Решение заключается в том, что внешние ключи должны быть установлены после того, как будет создан индекс на ссылочную колонку в каждой дочерней таблице. Для каждой таблицы с внешним ключом:

1) Удалить внешний ключ.
2) Создать индекс на колонку, используемую ключем.
3) Воссоздать внешний ключ.


Q: При попытке произвести вставку данных в таблицу появляется сообщение 'table in an incomplete state'. В чем причина и что теперь делать?

A: Похоже на то, что индекс, который был установлен при создании первичного ключа, был удален. Удалите первичный ключ, создайте индекс, и заново создайте первичный ключ. Это должно решить проблему.



Q: Возможно, ли модифицировать таблицу с данными с использованием утверждения select?

A: Для SQLBase версии 6. x.x можно производить модификацию с использованием SUBSELECT. В SQLBase версии 7.0 впервые представлена функция, выполняющая подобные действия. Имеется превосходный пример для SQLWindows, показывающий данную методику, доступный на сайте http://www.centurasoft.com/support/tech_info/knowledge_base/sbsinfo/t1tot2.zip



Q: Программа выводит сообщение об ошибке "Application Dedlock", что необходимо сделать?

A: Эта ошибка происходит, когда несколько программ пытаются установить блокировки на одной и той же странице в базе данных, при этом уже имеется блокировка на странице от других приложений. Блокировки устанавливаются, когда происходит обращение к данным, и зависят от уровня изоляции.

Например:

Оба приложения блокируются. SQLBASE выбирает один из процессов и завершает вторую задачу.

Методика уменьшения подобных проблем следующая.

В программах необходимо откорректировать порядок insert/update/delete для устранения ситуаций одновременной блокировки.


Сообщения об ошибках

Q: Что означает сообщение об ошибке №63731?

A: Такой номер сообщения об ошибке недопустим. Однако существует правило для определения реального номера ошибки. Для ошибок, чей номер выше 60000, необходимо использовать формулу пересчета "(65536 - [Номер ошибки]) * (-1)". В данном случае получаем (65536 - 63731) * (-1) = -1805 "TimeOut".



Q: Работа сервера базы данных завершается с ошибкой 703. Что это означает?

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



Q: Выдается отрицательный номер ошибки. Каково отличие от положительных кодов возврата?

A: Отрицательная ошибка означает, что сервер базы данных произвел RollBack. В SQLBase RollBack может быть ограничен последней компилированной командой или всей транзакцией. Положительная ошибка означает, что транзакция все еще активна (то есть программа может выбрать, выполнять COMMIT либо RollBack).



Q: Почему выдается сообщение об ошибке №00422 "Invalid Servername Length"?

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: Выход из создавшегося положения есть, и чаще всего не один!

Ну а если всерьез, то попробуйте следующие действия, возможно, они выведут Вас из кризисной ситуации:

  1. Квалифицируйте ссылки на все дочерние объекты переменные, особенно, если их имена совпадают с названиями в других окнах (например: form1.df1).
  2. Не используйте сомнительные объекты (например - QO) функции и DLL, особенно внешнего и собственного происхождения. Если не использовать нельзя, основательно их протестируйте.
  3. Проверьте собственные классы, если они есть, попробуйте упростить и использовать стандартные объекты для эксперимента.
  4. Проверьте работоспособность системы на стандартных примерах, входящих в комплект CDT, и если на них не пойдет, то сообщите дополнительно, указав название примера.
  5. Восстановите начальную версию и проверьте на ней Ваши программы. Если программы пойдут, то делайте выводы сами.
  6. Попробуйте Ваши программы на более старших версиях, например на CTD 1.5.1 (тестовую версию можно скачать на сайте http://www.interface.ru/). Если программы пойдут, опять же делай те выводы, если не пойдут ищите ошибку в своей программе.
  7. Используйте известные Вам методы локализации ошибок, например с помощью корректного комментирования. Локализуете ошибку вплоть до оператора или объекта. Замените или измените его.
  8. Если ошибка проявляется аналогично в разных программах, то попытайтесь найти общее между этими программами. Если на некоторых программах, например стандартных, SAMPLах не возникает, то сравните их.

Сохраненные Процедуры

Q: Необходимо использовать константу DATETIME_NULL в сохраненных процедурах, но она не работает. Что происходит?

A: Имеется ошибка использования этой константы в SQLBase версии 6.X. В SQLBase 7.0.1. это было исправлено.


Платформы

Q: Появляется сообщение об ошибке 'duplicate server ' при попытке установить SQLBase на Novell.

A: NLM определил, что имеется другой сервер с таким же именем, которое определено в SQL.INI файле сервера. ERROR.SQL файл определяет " Remedy:Verify that the server being installed does not already exit on the network". Проверьте SQL.INI файл сервера, в секции определения имени сервера. Измените имя. Убедитесь, что нет других серверов в сети, использующих то же имя сервера.



Q: Появляется ошибка 182 при попытке сделать копию на Novell сервере. Что это означает?

A: Сообщение об ошибке 182 указывает, что SQLBASE не может создать резервный файл. Убедитесь, что имеется достаточное дисковое пространство для копирования, и каталог существует. Также убедитесь, что копия делается 'ON SERVER' и правильно указан путь. На пример: Server1:sys\backups.



Q: При закрытии SQLBASE на Novell, выдается сообщение "1.1.14 Module did not release 1152 resources". В чем заключается проблема?

A: Это - временное событие. Ресурсы станут свободными через несколько минут.



Q: Как установить SQLBase в виде сервиса Windows'95 до версии 7?

A: Сервисом в Windows'95 - это обычные программы, запущенные в момент начальной загрузки. Они выполнятся прежде, чем кто-либо зарегистрируется в системе. Чтобы настроить сервис, запустите REGEDIT.EXE, и перейдите к разделу HKEY_LOCAL_MACHINE_SOFTWARE\Microsoft\Windows\CurrentVersion\Runservices. Вставьте новое элемент и дайте ему уникальное имя, типа "SQLBASESERVER". Установите значение этого элемента равным полному пути и имени файла сервера базы данных, например "C:\centura\dbnt1sv.EXE". Чтобы выполнялся минимизированный запуск, перед указанием пути необходимо вписать "start/m".



Q: Имеется ли возможность связаться с локальным SQLBase сервером из 16- и 32-разрядных приложений?

A: Прежде чем появился SQLBase для Win'95, существовали локальные 16-разрядные SQLBase сервера (DBWSERVR.EXE и DBWINDOW.EXE). Они были довольно просты в настройке и управлении. С появлением SQLBase для Win'95 (DBNT1SV. EXE) возникло несколько соображений, которые следует принять во внимание:

Конфигурирование протокола TCP/IP для Win'95 на машине, которая не имеет сетевых адаптеров, может быть сложным и не совсем удачным делом. Шаги, перечисленные ниже разработаны для оказания помощи при установке и конфигурировании TCP/IP для Win'95 так, чтобы к SQLBase серверу для Win'95 можно было обращаться и 16- и 32-разрядным приложениям.
Если Вы уже установили TCP/IP на вашей машине с Windows'95 и он работает правильно, проделайте несколько шагов для конфигурации SQLBase. Эти шаги подразумеваюьт, что Вы знакомы с SQLEDIT: Если у Вас не установлен TCP/IP протокол, проделуйте следующие шаги, чтобы сконфигурировать TCP/IP для Win'95:

Q: Для чего используется системная переменная SQLBASE?

A: Имеется системная переменная SQLBASE, которая указывает на каталог, в котором SQLBASE должен искать файлы SQL.INI, ERROR.SQL, MESSAGE.SQL, COUNTRY.SQL, и MAIN.INI. Эта системная переменная была создана для решения проблем пользователей, имеющих многочиленные копии одних и тех же файлов на компьютере.
Чтобы определить \GUPTA каталог, добавьте следующую строку в ваш AUTOEXEC.BAT:

SET SQLBASE = C:\GUPTA

Если Вы устанавливаете системную переменную SQLBASE, просмотр будет проводиться только в этом каталоге. В противном случае, порядок поиска для вышеупомянутых файлов следующий:

  1. Текущий каталог
  2. \SQLBASE (текущего диска)
  3. Корневая директория (текущего диска)
  4. Каталоги, определенные системной переменной PATH
  5. Каталоги определенные системной переменной DPATH (только для OS/2 2.0).
Вы можете устанавливать системную переменную SQLBASE, и на клиенте и на сервере.


Q: Имеются ли проблемы, при работе с Windows'98?

A: Centura Software Corporation сертифицирует 32-разрядные программы для использования в Windows'98. Для получения дальнейшей информации посетите:
http://www.centurasoft.com/support/tech_info/bulletins/win98warn.html



Q: Почему не загружается SQLBase 7.X в Novell NetWare 4.11 (NDS), хотя в Начальном Руководстве все описано?

A: Существуют ошибки в руководстве. Общий порядок загрузки должен быть:

load dsapi
load spxs
load dfd
load dll -------- это не учтено в начальном руководстве ----------
load tlispxds
load exfmgrnw
load dbnwsrvr

  1. Согласно интерактивной документации p.12-9 пакет включает snapin файл для nwadmin <CNWA16. DLL>. Этот файл отсутствует. В данный момент Вы не можете управлять SQLBase в NWADMIN.
  2. Интерактивная документация p. 12-2 не содержит полной конфигурации. Конфигурация (кроме вышеупомянутой ошибки) правильна в Начальном Руководстве.
Дополнительная информация может быть найдена по следующему адресу:
http://www.centurasoft.com/support/tech_info/bulletins/ndsdocpr.html


Q: После аварийного отказа сети, SQLBase сервер выводит сообщение "missing logfiles". Что необходимо делать?

A: Иногда происходит то, что последний журнал был в использовании базой данных в момент аварийного отказа файлового сервера. В этом случае сервер может удалить журнал в момент перезапуска. Восстановление журнала возможно с помощью с FILER.EXE.



Q: Клиенты Win'95 выдают ошибку "Cannot load sqlspxw.dll" хотя конфигурация - такая-же как для Win3.1 клиентов. Имеются установленные клиенты Novell. Как можно устранить ошибку?

A: См. http://www.centurasoft.com/support/tech_info/knowledge_base/sbsinfo/fileli~1.html
Всякий раз, когда Вы получаете сообщение "Cannot load library ...", это указывает, что Вы или не можете загрузить указанную DLL, или один из ее компонент. Убедитесь, что всего компоненты существуют.



Q: Требуется ли обновление клиентских компонент, если обновлена версия сервера баз данных (5.x - 6.x)?

A: Рекомендуется сделать это, для обеспечения доступа к новым свойствам сервера баз данных.



Q: Какой номер порта TCP/IP используется для SQLBase?

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



Q: Какие файлы копируются при установке локальной версии SQLBase 7.X?

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 нет этих файлов, однако по методике, изложенной в документации, их легко создать. Но (!!!) в принципе незачем! Использование этой национализации ничего практически не дает, хотя создает много проблем:

  1. При их применении Вы сможете одновременно работать только с рускоязычными БД (например, тестовая ISLAND Вам станет недоступна и т.д.). Другие БД будут доступны только после замены country.sql и перезапуска сервера.
  2. Во-вторых, проблемы могут возникнуть при работе с несколькими серверами разной национализации
  3. В-втретьих, их применение влияет только на функции SQL @UPERCASE и @LOWERCASE, а это преобразование можно с успехом выполнить и в программе (SalStrUper...).
  4. Сортировка выполняется по русским символам и так правильно. Во многих проектах мы отказались от такой русификации и не жалеем.

Инструментальные средства

SQLConsole

Q: При установке SQLConsole 6.0 не удается создать локальную базу данных! Почему?

A: Вам необходимо создать локальную базу данных для SQLConsole, используя следующие шаги:

  1. Запуститься в режиме TOOLS ONLY.
  2. В меню 'Options' будут видны две опции, 'Create SQLConsole database' и 'Enable automatic features'. Опция 'create' работает нестабильно. Выберите опцию 'enable'. При этом зпустится локальный сервер и будет произведена попытка соединения с локальной базой данных. Будет выдана ошибка, предупреждающая о том, что не возможно соединиться с базой данных и предложением создавать локальную базу данных. Выберите 'Да'.

SQLTalk

Q: Возможно ли иметь "динамические сценарии" для утилиты TLKNRTR (старая версия DOS SQLTALK)?

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



Q: Как можно запустить SqlTalk, чтобы выполнить сценарий автоматически?

A: Используйте следующие параметры:
SQLTALK BAT INPUT = <skriptfile.wts> OUTPUT < = Logfile >


SQL Windows

Q: Как настроить sql.ini для максимальной эффективности?

A: Вопрос не простой. Параметров много. Сначала совет: ничего не трогайте, пусть работают значения по умолчанию. Сильно влияет на производительность параметр cache и sortcache, его желательно сделать большим (15-32767 страниц), но нужно учитывать возможности компьютера. И т.д. Все параметры описаны в dba.pdf.


Q: Как выполняется настройка SQL.INI станций и сервера для NT при использовании CTD2000 и SQLBase 7.5.1?

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, которая работает прекрасно и по сравнению со старыми версиями не содержит ошибок.


Q: При использовании SQLWindows 5.0 с Microsoft SQL Server у меня возник вопрос. Используем SalTblPopulate для заполнения таблицы. Если количество записей слишком большое, то появляются проблемы. Высвечивается 100 записей (по умолчанию), остальные остаются пустыми. Если я ставлю 32753 (максимально допустимое количество загружаемых строк), то программа вешается намертво. Вероятно, я неправильно работаю с таблицей. Как это делать правильно?

A: Во-первых, нужно уточнить условия, при которых возникает эта ситуация, и обстоятельства применения функции:

  1. Используется ODBC или механизмы связи через SQL роутер для Microsoft SQL Server и какие версии данных продуктов.
  2. Каковы размеры оперативной памяти на Вашей ЭВМ (таблица храниться в ОП) и возможно свободное пространство локального HDD.
  3. Размер отдельной записи при выборке (FETCH) в таблицу.
Во-вторых, при реальной практике применения (просмотра) таблиц фактически невозможно использовать такую большую выборку (Максимум 300 - 400 записей), так как пользователь практически не в состоянии выполнять навигацию по таким выборкам и реально это не нужно, только ему это на до корректно и доходчиво объяснить, учитывая его психологию. Мы обычно выдаем порцию записей в таблицу (300 - 1000), на экран выводим общий размер выборки ( функция - SqlGetResultSetCount) и даем пользователю предупреждение о не полностью заполненной таблице. В окне выборки представлены ее критерии, так что пользователь быстро привыкает их задавать (например, первые буквы фамилии) для уменьшения объема выборки. Кроме того, повышается оперативность его работы: он не ждет долго заполнения таблицы (как в QUEST, кстати, попробуйте им обратится к Вашей таблице: может быть это все-таки Ваша ошибка)

В-третьих, при использовании 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.


Quest

Q: При попытке запустить Quest не видно никаких кнопок, кроме "New" и "Open". Как это устранить?

A: Quest ищет файл "QUEST.INI", который включает описания всех кнопок. Необходимо повторно установить SQLWINDOWS/QUEST, чтобы получить правильные настройки. Либо можно указать правильный путь "questdir" в файле WIN.INI в разделе [QUEST].


Centura Team Developer

Q: В предыдущих версиях SQLBase 6 и SQLWindows был QUEST, где он в CTD2000?

A: В новой версии QUEST нет, он существует только в 16-ти разрядном варианте. Вместо него предлагается использовать DataBase Explorer. Но если Вы работаете по сети, то можете, настроив правильно протоколы подключения, подсоединиться со старым QUEST 3.1 к новому серверу и он будет работать! Только зачем?


Q: Почему при инсталляции CTD 1.5 не доступен компонент "Object Compiler"?

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, и как только появится ответ его Вам перешлем.

Однако уже в этом положении можно попробовать что-то сделать. Хотя, возможно вы уже шли этим путем, осмелюсь предложить следующие варианты:

  1. Тяжелый вариант. Попробуйте установить сначала CTD 1.5.0 (если конечно версия доступна, есть смысл проверить и с совсем старой CB 1.02), затем на нее поставить CTD 1.5.1. Только после этого поставить заплатку (PTF).
  2. Вариант с реестром. На машине, где установлена CTD 1.5.0 сделайте экспорт реестра для разделов связанных с CENTURA (лучше всего искать по каталогу, где сидит CENTURA). Далее, обязательно предварительно сохранив собственный реестр, сделать импорт разделов реестра, а затем снова попытаться поставить заплатку (можно, для отдельного варианта, как и в первом случае, переустановить CTD 1.5.1).
  3. Вариант с правкой реестра. Пройтись по реестру и вручную поправить разделы, связанные с CENTURA. Основанием правки может быть распечатка реестра с другого компьютера, где стоит CTD 1.5.0. Далее действия аналогичны.
  4. Проверка ресурсов. Проверить наличие ресурсов памяти HDD, для установки заплатки, и свободного места на системном диске.
  5. INI. Может быть поискать ссылки на версию в INI файлах, сделать там временную правку на 1.5.0, или в соответствии с INI другого компьютера, затем попробовать поставить заплатку и вернуть состояние INI-файлов.
Во-вторых, вообще считаю использование заплаток на продукты не очень корректным действием, так как система отлаживается в комплексе и ожидать от нее нормальной работы после такой операции сомнительно, нужен полный релиз для новых версий.

В-третьих, полностью разделяю Ваше мнение о том, что не будете отказываться от 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. Кроме того, проверьте физику харда. Вот дополнительный коплекс мер по преодолению Вашей проблемы, включая возможно и ситуации, связанные с падением сервера БД:

  1. В специальном файле настройки SQLBase (default.doc) можно увеличить значение параметра "log file size in bytes" - для NetWare не может быть пока больше 2Гб, или параметра "checkpoint log interval in bytes" - для NetWare не может быть пока больше 2Гб. Вообще, попробуйте варьировать параметрами в этом файле, связанными с обслуживанием журнала транзакций (LOG.).
  2. Вообще самые надежные серверы Centura, как показывает практика: v 5.2, v 6.01, v 7.5.1
  3. Попробуете установить AUTOCOMMIT для транзакций.
  4. Если у Вас сервер работает круглосуточно, то возможно накапливаются большие файлы для отката транзакций. Введите десятиминутный регламент пару раз в сутки для перезагрузки СУБД (снять и снова запустить).
  5. Учтите, что log файлы всегда располагаются совместно с файлом БД.
  6. Проверьте установку параметра настройки SQLBase - LOGBACKUP, его лучше установить в состояние OFF.
  7. В SQL.ini отменить проверку размера фалов журнала: disablelogspacecheck=1
  8. Вообще, желательно детально по документации изучить и проанализировать все параметры настройки журнала транзакций. Возможно, в результате экспериментов у Вас эти параметры изменились, или в настоящий момент не соответствуют Вашей реальной ситуации с БД. Этот материал находится в книге: "SQLBase. Database Administrator's Guide". Если предпринятые меры не помогут, постарайтесь более детально описать ситуацию, (ОС, версии, номера ошибок, особенности БД и все, что вы считаете важным для вашего случая) и напишите нам. В случае необходимости мы продолжим анализ Вашей ситуации.

Connectivity

Основные

Q: При попытке вставить пустую строку, производится замена на пробел. Это можно избежать? A: Маршрутизатор базы данных Centura ведет себя следующим образом:
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

Чтобы избежать проблемы вставки пробела, добавьте ключевое слово "SetZeroLengthStringsToNull = 1" в SQL.INI в секции [WinClient] и [Win32Client].


Q: Как посмотреть протокол работы SQLRouters? A: В SQLWindows или CTD, Вы можете отслеживать работу маршрутизаторов, добавив строку следующего вида log = <имя файла> в SQL.INI, в секции указанные в таблице:
SQLRouter Section 16-bit Section 32-bit
Sybase [winclient.sybw] [win32client.syb32]
Oracle [winclient.oraw] [win32client.ora32]
ODBC [winclient.odbw] [win32client.odb32]

Oracle

Q: При использовании внешнего result set выводится ошибка с номером 163 ("Result set not active"). Как этого избежать? A: Это сообщение об ошибке обычно связано FRS*:* файлами, которые не удалены в случае аварийного отказа. Прежде, чем запускать программу, изучите каталог TEMP (C:\TEMP или подобный) и удалите все файлы, начинающиеся с "FRS". Дополнительную информацию можно получить по адресу:
http://www.centurasoft.com/support/tech_info/knowledge_base/ctdinfo/error163.html


Q: Как необходимо сконфигурировать подключение с Oracle для 16-разрядных (SQLWindows) приложений? A: Запустите SETUP.EXE из каталога "Window" CD Oracle, чтобы установить 16-разрядного клиента. После этого запустите 16-разрядный NET*EASY, чтобы сконфигурировать псевдоним базы данных, например. Database Alias: MyDB
Protocol: TCP/IP
Host Name: 192.1.11.28
Database Instance: MyDB Далее, запустите 16-разрядный SQLPlus (Oracle для Windows) чтобы проверить соединение с базой данных, использующей псевдоним MyDB. Если связь не может быть установлена, это - проблема установки Oracle.
Так-же запустите SQLTalk, чтобы связаться с тем же самым псевдонимом базы данных. Для этого требуются правильные установки программного обеспечения для Oracle и следующих секций в SQL.INI: [ Winclient.dll]
Comdll = sqloraw
[ Oragtwy]
Remotedbname = MyDB, TNS:MYDB


Q: Требуется вставить/модифицировать данные в базу данных Oracle. При этом выводится ошибка "ORA-01465 Invalid hex number". Что делается неправильно? A: Возможно один из ваших столбцов в базе данных имеет тип "LONG ROW". Для работы с таким типом данных необходимо произвести следующее преобразование SqlSetLongBindDatatype(nBindVarNumber, nDatatype) между выражениями SqlPrepare() и SqlExecute().


Q: Для числовых значений в формате, отличном от US данные отображаются неправильно, при выборке из базы данных Oracle. Как этого можно избежать? A: Вы должны изменить параметры настройки для тысяч и десятичных разделителей на международный формат. Необходимо выполнить следующий набор команд: ALTER SESSION SET NLS_NUMERIC_CHARACTER = '.,' Выполнив следующую команду, Вы можете изменить параметры установки дат: ALTER SESSION SET NLS_DATE_FORMAT = ' YYYY-MM-DD-HH24. MI.SS' Направление сортировки: ALTER SESSION SET NLS_LANGUAGE = GERMAN.


Q: Как установить уровень оптимизатора? A: Параметры настройки оптимизатора могут быть изменены с помощью команды: ALTER SESSION SET OPTIMIZER_GOAL = <уровень> Где уровень - это одно из следующих значений:
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


Q: Является ли возможным просмотреть Execution Plan для SQL-запросов Oracle? A: Oracle отображает execution plan для объектов базы данных с помощью команды "EXPLAIN PLAN". Чтобы воспользоваться этой командой необходимо убедиться, что таблица "PLAN_TABLE" существует. Ее описание находится в файле UTLXPLAN.SQL: CREATE TABLE PLAN_TABLE (
statement_id varchar2 (30),
timestamp date,
remarks varchar2 (80),
operation varchar2 (30,
options varchar2 (30),
object_node varchar2 (128),
object_owner varchar2 (30),
object_name varchar2 (30),
object_instance numeric,
object_type varchar2 (30),
optimizer varchar2 (255),
search_columns numeric,
id numeric,
parent_id numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2 (255),
other long);


Q: Как подключиться из SqlWindows к Oracle 8? A: Используйте 16-битный SqlNet 2.3, поставляемый с Oracle 7.3. По умолчанию устанавливается 32-разрядный клиент для Windows'NT, 95 или 98. Чтобы установить 16-битный SqlNet, необходимо войти в каталог Windows на CD Oracle и запустите 16-битный установщик.


Q: Почему при выполнении запроса, содержащего хранимые функции, которые возвращают VARCHAR2 (VARCHAR), результаты не передаются в приложение? A: Это связано с тем, что максимальная длина VARCHAR2 в ORACLE - 2000 символов, что трактуется OraGtwy как LONG VARCHAR, даже если явно указать меньшую длину возвращаемого значения (например, VARCHAR(80)), поэтому данные следует принимать в переменные (или поля) типа Long String.


Q: Для вызова хранимой процедуры создана функция CTD; внутри нее вызывается функция SqlPLSQLCommand(). Передача параметров в хранимую процедуру и из нее осуществляется через параметры функции. Однако значения, возвращаемые процедурой в эти параметры не попадают. A:Для обмена данными с хранимой процедурой следует использовать локальные переменные, а затем из них передавать значения в параметры.


Q: Что за раздел [ODBCrtr] в sql.ini? Насколько я понял, это настройки роутера. Но в документации я по этому вопросу ничего не нашел. Хотелось бы узнать о них по подробнее. A: Короткий ответ: Раздел ODBCrtr в sql.ini использовался в ранних версиях SQLBase для определения удаленной (remotedbname) БД для QDBC взаимодействия. В настоящее время он заменен на настройки в файле ODBC.INI. Смотрите соответствующие разделы документации по SQLBASE Connection. Подробнее о старой версии раздела [ODBCrtr] в sql.ini можно посмотреть в документации версии 5.2 (или 6.0) SQLBase Книга "SQLNetwork: Guide to GUPTA Connectivity " стр. 3. 24. В версии 7.5 SQLBase этот раздел [ODBCrtr] может использоваться для определения параметра buffrow (и других) для контроля за буферизацией ODBC взаимодействия ( см. стр. 8-11, 4-8, 4-10 и др. электронной книги ccon.pdf - книга Connecting Centura Objects to Databases из CTD 2.0 Matternhorn). Возможный распространенный ответ: Раздел ODBCrtr в sql.ini использовался в ранних версиях SQLBase для определения удаленной (remotedbname) БД для QDBC взаимодействия. В документации версии 5.2 (или 6.0) SQLBase Книга "SQLNetwork: Guide to GUPTA Connectivity " на стр. 3. 24. Сказано буквально следующее: (начало цитаты) ODBC remotedbname Section [odbcrtr] Syntax remotedbname=db_name, connect__string Description db_name specifies the database. The name cannot be more than 8 characters.
  • The connect _string contains one required value, the DSN, which is the name of the data source as returned by SQLDataSources. This value must match the DSN value defined in ODBC. INI.

    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.

    remotedbname=DEMO, DSN=MYDB;UID=SYSADM; PWD=SYSADM(конец цитаты)

    Не вдаваясь в детальный перевод, можно сказать, что информация об удаленной БД 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, 1999

    CTD 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. После установки его эти ошибки проявляться не будут.


    Microsoft SQLServer

    Q: На некоторых машинах, с абсолютно идентичными DLL, SQL.INI файлами и установкой ODBC, производится попытка установки связи. На некоторых машинах выдается ошибка, на других подключение безаварийно. Как можно устранить эту проблему?

    A: Эта ошибка связана с проблемой определения путей загрузки DLL. Необходимо исследовать, как загружаются необходимые модули на машинах с нормальной свяью и сравнить со сбойными машинами. Некоторые драйверы устанавливает ODBC Администратор(ODBC32. DLL). Это приводит к несоответствию версий ODBC Engine.



    Q: Как можно использовать "begin transaction" и "commit transaction" в сохраненных процедурах для MS SQL Server (ver. 6.0 или 6.5)?

    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



    Q: Как можно конкатенировать столбцы в утверждениях SELECT?

    A: Использование '||' не отрабатывается.
    SQL Server использует знак '+' для конкатенации столбцов, как показано в следующем примере:
    SELECT colA + colB + colC FROM tableD INTO :sVar


    JDBC

    Q: Нет доступа к JDBC-драйверам для работы. Что неправильно?

    A:

    1. Убедитесь, что используется коммерческий выпуск JDBC драйвера а не файлы .class от бета выпуска.
    2. Переименуйте каталог установоки следующим образом: C:\Centura\centura\java\sqlbase\
    3. Чтобы зарегистрировать драйвер, необходимо использовать следующий способ включения: "centura.java.sqlbase.SqlbaseDriver "

    Чтобы проверить подключение JDBC, используйте утилиту JDBCTest, доступную на http://www.intersolv.com/


    ODBC

    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...



    Q: При попытке доступа к SQLBase из MS Access выводится сообщение "Table 'TMP, % # MAU' alredy exist". Как этого избежать?

    A: Детальная информация по этой теме доступна по адресу:
    http://www.centurasoft.com/support/tech_info/bulletins/access~1.html



    Q: Используется некоторое программное обеспечение для загрузки данных в SQLBase с использованием ODBC, но при этом используются кавычки для описания столбцов, и следовательно SQLBase не распознает их правильно. Имеется ли обходной путь?

    A: При использовании приложений, которые создают SQL-запросы подобно "INSERT INTO "INETLOG"("ClientHost", ..) ... " для вставки данных в SQLBase, существует проблема в том, что кавычки в именах столбцов и таблиц не воспринимаются. Обходным вариантом является следующий шаг. Необходимо создать таблицы и столбцы с кавычками в именах.
    Например:

    CREATE TABLE "INETLOG"("ClientHost" char (255), ...)
    В SQLBASE.

    Либо переименуйте уже существующие таблицы.



    Q: Используется CTD/SQLWindows SQLRouter для ODBC. При этом ODBC драйвер не перечислен в списке доступных драйверов. Что можно сделать?

    A: Невозможно проверить все ODBC драйверы. Если драйвер совместим с ODBC 2.0, то он должен работать. Если имеются трудности с типами данных, обратитесь к интерактивной справке для получения информации о DCC.INI.



    Q: Как я восстанвить информацию из системного каталога ODBC источника данных?

    A: Это может быть выполнено с помощью непосредственного подключения ODBC API. Либо с помощью использования ODBCTESTX.OCX(свободно распространяемый ActiveX компонент), который работает с ODBC API.



    Q: При попытке соединяться с источником данных ODBC, появляется ошибка 401 "Cannot connect to database". Как можно избежать этого?

    A: Centura сохраняет информацию об ODBC в файле по имени GUPTA.INI. Это, как предполагается, делает соединение с источником данных быстрее. Этот файл хранится в каталоге, который содержит ODBC32.DLL. Рекомендуется удалить GUPTA.INI прежде, чем будет соединение с ODBC источником данных. Это предотвратит ошибку, при правильно сконфигурированом ODBC.



    Q: Как можно обойти ошибку 1811 "File not found" при попытке соединения с ODBC источником данных?

    A: Centura сохраняет информацию об ODBC в файле по имени GUPTA.INI. Это, как предполагается, делает соединение с источником данных быстрее. Этот файл хранится в каталоге, который содержит ODBC32.DLL. Рекомендуется удалить GUPTA.INI прежде, чем будет соединение с ODBC источником данных. Это предотвратит ошибку, при правильно сконфигурированом ODBC.



    Q: При замене ODBC источника данных, для использования другой базы данных Centura хранит соединение со старой базой данных. Как это устранить?

    A: Centura сохраняет информацию об ODBC в файле по имени GUPTA.INI. Это, как предполагается, делает соединение с источником данных быстрее. Этот файл хранится в каталоге, который содержит ODBC32.DLL. Рекомендуется удалить GUPTA.INI прежде, чем будет соединение с ODBC источником данных. Это предотвратит ошибку, при правильно сконфигурированом ODBC.



    Q: Драйвер не поддерживает псевдонимы столбцов. Возможно ли решить эту проблему?

    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

    Что такое CTD 2000?

    Centura Team Developer - это передовая интегрированная среда разработки (Integrated Development Environment, IDE), предлагаемая компанией Centura для создания 32-разрядных бизнес-приложений на платформе Windows. Centura Team Developer предоставляет профессиональным разработчикам средства, необходимые для создания масштабируемых отказоустойчивых распределенных бизнес-приложений для Веб и клиент/серверных вычислений. CTD 2000 обеспечит вашему коллективу разработчиков мощь, продуктивность и гибкость, необходимые для создания приложений, удовлетворяющих стратегическим бизнес-требованиям.

    Зачем нужен CTD 2000?

    В современной программной среде электронной коммерции разработчикам следует стремиться удовлетворить потребности самых разнообразных клиентов. Для поддержки разработчиками веб-клиентов, полностью автоматизированных клиентов, работающих без участия человека, мобильных устройств и других, пока еще не изобретенных клиентов, приходится выходить за рамки персональных компьютеров, использующих Windows. В результате на разработчиков ложится достаточно тяжелая ноша. Они ищут пути расширения существующих бизнес-систем для обслуживания как внутренних, так и внешних заказчиков. Усиление отдачи от существующих данных и систем является решающим фактором сохранения времени, денег и ресурсов. Centura предоставляет инструменты, помогающие разработчикам создавать, разворачивать и объединять программные продукты с системным ядром бизнес-логики.

    Что такое SAL?

    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:

    1. Расширенные средства поддержки клиента ActiveX позволит объединять приложения, созданные с помощью CTD, с MS Office и другими приложениями. ActiveX Explorer позволит разработчикам программировать с большей легкостью и эффективностью, пользуясь объектами ActiveX и COM.
    2. Расширения к Centura Web Extensions позволят программистам с большей гибкостью и расширяемостью адаптировать существующие приложения к среде интернет. Улучшенный контроль над выводимой веб-приложением информацией даст возможность выйти за рамки традиционных типов приложений, основанных на веб-формах, и создавать больше приложений пакетного типа, таких как серверы XML для электронной коммерции business-to-business.
    3. Способность создавать объекты COM и использовать их с MTS открывает разработчикам целый мир возможностей. Они смогут лучше интегрировать свои приложения с другими системами, создавая масштабируемые распределенные приложения. Они смогут создавать компоненты бизнес-логики, которые будут мозгом веб-приложений, разработанных с помощью технологий типа Active Server Pages и Cold Fusion. Программисты смогут создавать различные типы серверов, таких как серверы XML или масштабируемые серверы для генерации отчетов, построенные с помощью COM-интерфейса Report Builder.
    4. Новые возможности клиента OLE DB, в соединении с провайдерами Merant OLE, обеспечат разработчикам доступ к реляционным и нереляционным источникам данных с помощью функций SQL при незначительных изменениях уже разработанных приложений.

    Совместимость баз данных

    С какими базами данных может соединяться 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)

    Что такое объектно-ориентированный анализ и проектирование?

    Основой объектно-ориентированного анализа и проектирования является разбивка проекта на логические компоненты. Это также основа компонентных программ, т.е. программ, составленных из стандартных модулей.

    Что такое компонент?

    Компонент - это многократно используемая изолированная часть программы в двоичной форме, не зависящая от приложений. Компонент можно относительно легко вставить в любое приложение.

    Что такое разработка на основе компонентов?

    Разработка на основе компонентов - это метод разработки приложений, быстро превращающийся в стандарт. Популярность интернета и серверов приложений питают собой отход от традиционных приложений для "толстого" клиента, в которых каждая машина клиента запускает копию бизнес-программы, к распределенной архитектуре "тонкого" клиента, где ресурсоемкая часть бизнес-логики обрабатывается на различных серверах баз данных и серверах приложений.

    Строя приложения из компонент, разработчики могут сделать их модульными. Это делает возможным совместное использование одного компонента в разных системах и доступ разных клиентов к одному и тому же компоненту. Если один элемент бизнес-логики не работает, или же изменяются некоторые правила бизнеса, разработчику достаточно переделать один компонент. Если бы он дублировал одни и те же выполняемые функции во всех приложениях, ему понадобилось бы изменить каждую из них. Это также означает, что нет нужды одновременно загружать в память все приложение целиком, так что система становится более производительной и масштабируемой.

    Что такое COM?

    Разработанный Microsoft протокол COM (Component Object Model) обеспечивает стандартный способ взаимодействия компонентов. Компоненты взаимодействуют между собой в рамках модели клиент/сервер. COM определяет стандартизованные средства создания компонент и управления коммуникациями между этими компонентами и их клиентами.

    В отличие от традиционных объектов, компоненты могут взаимодействовать через инструментарий и сети. Стандартизация коммуникаций означает, что приложение ищет объект COM в процессе выполнения программы, обнаруживает его интерфейс и знает, как с ним взаимодействовать.

    Что такое Windows DNA?

    Во взаимосвязанном мире, в котором клиентам 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.

    Что такое MTS?

    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?

    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?

    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.


    Google
     

    Return to http://gupta.narod.ru/


    Сайт создан в системе uCoz