Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Нужна помощь PB9 + MSSQL2000 / 10 сообщений из 10, страница 1 из 1
22.12.2005, 13:06
    #33451792
Pasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь PB9 + MSSQL2000
Добрый день
понадобилсь написать маленькое приложение используя MSSQL server
я настроил соединение как через ODBC так и через MSS Microsoft SQL Server
Но нам необходимо связаться с БД Oracle
Настроили linked server, соединились с Oracle
создал вьюху, например
CREATE VIEW scfweb1.VW_TEST
AS
Select * From Openquery(SCF_CREW, 'select Imo_no from scfcrew_dba.vessel')

Дальше пошли засады:
если я подключен через MSS Microsoft SQL Server, то мне не удается создать datawindow на данную VIEW, и выскакивает сообщение об неустановленном ansi_nulls ON и ansi_warnings on
При подключении через ODBC, я в SQLCA.DBParm = "ConnectString=set ansi_nulls on;set ansi_warnings on'" это могу прописать и нормально работать.
Ну соответсвенно если программа при запуске подключается через ODBC - то данные выбираются, а если через MSS Microsoft SQL Server - то опять ругань на неустановленные параметры.

Вопрос, а можно ли как то прописать при подключении через MSS Microsoft SQL Server, чтобы устанавливались необходимые параметры ansi_nulls on ansi_warnings on'???? Уж что-то не хочется возвращаться к ODBC
...
Рейтинг: 0 / 0
22.12.2005, 13:15
    #33451838
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь PB9 + MSSQL2000
Pasha wrote:

> При подключении через ODBC, я в SQLCA.DBParm = "ConnectString=set
> ansi_nulls on;set ansi_warnings on'" это могу прописать и нормально
> работать.
> Ну соответсвенно если программа при запуске подключается через ODBC - то
> данные выбираются, а если через MSS Microsoft SQL Server - то опять
> ругань на неустановленные параметры.

А так попробуй:

EXECUTE IMMEDIATE 'SET ANSI_NULLS ON' ;
EXECUTE IMMEDIATE 'SET ANSI_WARNINGS ON' ;
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
22.12.2005, 13:27
    #33451877
Pasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь PB9 + MSSQL2000
пробовал
и при подключении
и так
execute immediate 'set ansi_nulls on ';
execute immediate 'set ansi_warnings on ';
dw_1.SetTrans(SQLCA)
dw_1.Retrieve()
и так
dw_1.SetTrans(SQLCA)
execute immediate 'set ansi_nulls on ';
execute immediate 'set ansi_warnings on ';
dw_1.Retrieve()

Безтолку, при подключении через MSS Microsoft SQL Server выдает ошибку
...
Рейтинг: 0 / 0
22.12.2005, 13:36
    #33451911
pand
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь PB9 + MSSQL2000
>execute immediate 'set ansi_warnings on ';
>dw_1.SetTrans(SQLCA)
а попробовать SetTransObject(sqlca)
а то ведь при SetTrans происходит новый коннект
...
Рейтинг: 0 / 0
22.12.2005, 13:47
    #33451939
Pasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь PB9 + MSSQL2000
и с dw_1.SetTransobject(SQLCA)
все варианты пробовал
...
Рейтинг: 0 / 0
22.12.2005, 13:55
    #33451969
Pasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь PB9 + MSSQL2000
кстати, когда я делаю так:
execute immediate 'set ansi_nulls on ';
execute immediate 'set ansi_warnings on ';
dw_1.SetTransObject(SQLCA)
или
dw_1.SetTransObject(SQLCA)
execute immediate 'set ansi_nulls on ';
execute immediate 'set ansi_warnings on ';

то появляется следующее сообщение;
The operation could not be performed because the Ole Db Provider 'OraOleDb.Oracle' was unable to begin adisributed transaction
...
Рейтинг: 0 / 0
22.12.2005, 14:16
    #33452041
cbusel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь PB9 + MSSQL2000
Попрубуй еще:
Код: plaintext
sqlca.autocommit=true
...
Рейтинг: 0 / 0
22.12.2005, 14:18
    #33452054
Pasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь PB9 + MSSQL2000
cbuselПопрубуй еще:
Код: plaintext
sqlca.autocommit=true


спасибо помогло
в итоге
конекшин
SQLCA.DBMS = "MSS Microsoft SQL Server"
SQLCA.AutoCommit = True
SQLCA.Database = is_Database
SQLCA.LogPass = is_LogPass
SQLCA.ServerName = is_ServerName
SQLCA.LogId = is_LogId


код
dw_1.SetTransObject(SQLCA)
execute immediate 'set ansi_nulls on ';
execute immediate 'set ansi_warnings on ';
dw_1.Retrieve()
...
Рейтинг: 0 / 0
22.12.2005, 15:22
    #33452358
Pasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь PB9 + MSSQL2000
Поторопился
sqlca.autocommit=true
не лучшем образом для остальной части программы

а можно как нить в рантайме у соединения поменять autocommit
execute immediate 'SET IMPLICIT_TRANSACTIONS ON/OFF не прокатило


а также не решена проблема, когда программируешь
Чтобы создать DW необходимо иметь соединение ODBC?
...
Рейтинг: 0 / 0
22.12.2005, 15:29
    #33452392
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь PB9 + MSSQL2000
почему не лучшим образом?
autocommit для MSSQL должен быть True практически всегда, за редким исключением.
выставлять True или False можно в любой момент. BEGIN TRAN при необходимости PB сделает сам.

Зорин А.
"I love deadlines. I like the whooshing sound they make as they fly by."
-- Douglas Adams
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Нужна помощь PB9 + MSSQL2000 / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]