powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / OLEDB 4 ASE > 12.5.1
20 сообщений из 20, страница 1 из 1
OLEDB 4 ASE > 12.5.1
    #34609258
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже раз наступили

Поднялись до
select @@version
Adaptive Server Enterprise/15.0.1/EBF 13823/P/NT (IX86)/Windows 2000/ase1501/2379/32-bit/OPT/Mon Aug 14 22:12:39 2006

Опять те же яйца, только - в профиль

Получается, что у субаси синдром КР на предмет OLEDB
Поделитесь опытом - мо, у кого, нить нормательно сей "витвiр мистецтва" (OLEDB) фунциклирует
Ну не хотца подкладывать выше означенное от 12.5.1

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34611144
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как всегда
: дело было - в прокладке между монитором и седушкой


Субасевцам зачем-то захотелось:
1. Переименовать провайдера

The new ASE OLE DB Provider by Sybase is installed in %SYBASE%\DataAccess\OLEDB, and uses provider short name “ASEOLEDB”

2. Изменить наименование параметров

И итоге connectionString модифицировалась от
Код: plaintext
1.
value="Provider=Sybase.ASEOLEDBProvider;Server Name=developer1;Server Port Address=5000;Initial Catalog=testdb;User ID=sa;Password="
до
Код: plaintext
1.
value="Provider=ASEOLEDB;Server=developer1;Port=5000;Language=russian;Initial Catalog=testdb;User ID=sa;Password="
и все пошло, как дети в школу

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34611253
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Soft
до
Код: plaintext
1.
value="Provider=ASEOLEDB;Server=developer1;Port=5000;Language=russian;Initial Catalog=testdb;User ID=sa;Password="
и все пошло, как дети в школу


заметка на полях: девелопить под sa - это наверно модно ;)
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34623274
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вторая часть марлезонского балету


sybdrvoledb.dll (Sybase OLEDB Provider for ASE ver. 15.0.0.130)

1. Не фунциклирует OleDbConnection.ChangeDatabase(). Фактически изменяется только OleDbConnection.Database - при попытке же после выше означенного обратиться к обЪекту смененной database

bla-bla-bla doesn't exist.


2. Падает в транзакции OleDbCommandBuilder.DeriveParameters(). Имеем

System.Data.OleDb.OleDbException
ErrorCode=-2147217865
Message: The 'CREATE TABLE' command is not allowed within a multi-statement transaction in the 'tempdb' database. #oledb_results_table not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).
Source: ASEOLEDB
StackTrace:
at System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr)
at System.Data.OleDb.OleDbConnection.GetSchemaRowset(Guid schema, Object[] restrictions)
at System.Data.OleDb.OleDbCommandBuilder.DeriveParametersFromStoredProcedure(OleDbConnection connection, OleDbCommand command)
at System.Data.OleDb.OleDbCommandBuilder.DeriveParameters(OleDbCommand command)
at TestOLEDB.MainForm.ButtonExecute_Click(Object sender, EventArgs e) in e:\soft.src\asp.net\testoledb\mainform.aspx.cs:line 190
TargetSite:
Void ProcessResults(Int32)

||

System.Data.OleDb.OleDbException
ErrorCode=-2147217865
Message: Index id 1 on table id 1013575618 cannot be used in the optimization of a query as it is SUSPECT. Please have the SA run DBCC REINDEX on the specified table. The 'CREATE TABLE' command is not allowed within a multi-statement transaction in the 'tempdb' database. #oledb_results_table not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).
Source: ASEOLEDB
StackTrace:
at System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr)
at System.Data.OleDb.OleDbConnection.GetSchemaRowset(Guid schema, Object[] restrictions)
at System.Data.OleDb.OleDbCommandBuilder.DeriveParametersFromStoredProcedure(OleDbConnection connection, OleDbCommand command)
at System.Data.OleDb.OleDbCommandBuilder.DeriveParameters(OleDbCommand command)
at TestOLEDB.MainForm.ButtonExecute_Click(Object sender, EventArgs e) in e:\soft.src\asp.net\testoledb\mainform.aspx.cs:line 190
TargetSite:
Void ProcessResults(Int32)

вне транзакции - все сухо...

Настораживает что
OleDbConnection.ServerVersion
Server Version: 12.05.2000

хотя
OleDbConnection.ServerVersion (sydaase.dll (ASE OLE DB Provider ver. 2.70.0.23))
Server Version: 15.00.0000


Дык к чему это я все:
1. Кривой sybdrvoledb.dll (Sybase OLEDB Provider for ASE ver. 15.0.0.130)?
2. В контексте OleDbCommandBuilder.DeriveParameters() мо че-то мона/нуна покрутить/пнуть в настройках ASE?

TIA
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34627808
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Soft
2. В контексте OleDbCommandBuilder.DeriveParameters() мо че-то мона/нуна покрутить/пнуть в настройках ASE?

лечится
Код: plaintext
1.
exec master.dbo.sp_dboption tempdb, 'ddl in tran', true
Респект MasterZIV'у

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34628970
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Soft пишет:

> лечится
> exec master.dbo.sp_dboption tempdb, 'ddl in tran', true

Она не лечится, она устраняет видимые симптомы болезни.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34641040
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Третья часть марлезонского балету

Если юзать домены (User Defined datatypes), то
OleDbCommandBuilder.DeriveParameters() (sybdrvoledb.dll (Sybase OLEDB Provider for ASE ver. 15.0.0.130))
ParameterNameDirectionOleDbTypeDbTypeIDInputVariantObject NameInputVariantObject

а
OleDbCommandBuilder.DeriveParameters() (sydaase.dll (ASE OLE DB Provider ver. 2.70.0.23))
ParameterNameDirectionOleDbTypeDbTypeIDInputSmallIntInt16 NameInputVarCharAnsiString

Ну и как теперь разруливать типы?
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34653657
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А. С. Пушкин
О скольно нам открытий чудных...

Путем изысканий и мучений (как собственных, так и продвинутых товарищей (за что им отдельный респект
)) для себя уяснил (если где неправ - подправьте, pls)
1. Согласно EBF14280_README.html
* Adaptive Server Enterprise OLE DB Provider by Sybase
This release of SDK 12.5.1 ESD#6 introduces a new OLE DB Provider for
Sybase ASE named "Sybase Adaptive Server Enterprise OLE DB Provider by
Sybase"

ASEOLEDB тянется еще с ASE 12.x и не является чем-либо специфичным конкретно для ASE 15.x only.

2. Ethereal'ом подсмотрел (благо там все в открытую
), что при вызове OleDbCommandBuilder.DeriveParameters() :
Sybase.ASEOLEDBProvider дергает sp_sproc_columns
ASEOLEDB - sp_oledb_getprocedurecolumns

На дрозофиле
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
exec sp_addtype D_Staff_ID, "smallint", "null"
go
exec sp_addtype D_Staff_Name, "varchar(50)", "null"
go

create procedure TestSP
  @ID D_Staff_ID,
  @Name D_Staff_Name,
  @Salary money,
  @Dep int,
  @BirthDate datetime,
  @NEW_ID smallint output
as
begin
  declare
    @ReturnValue int
...
  set @ReturnValue=@@error
...
  return(@ReturnValue)
end
go 
дернул выше указанные SP руками
sp_sproc_columns
column_namedata_typeRETURN_VALUE4@Id5@Name12@Salary3@Dep4@BirthDate11@NEW_ID5

sp_oledb_getprocedurecolumns
PARAMETER_NAMEDATA_TYPERETURN_VALUE3@Id0@Name0@Salary6@Dep3@BirthDate135@NEW_ID2

Получается:
2.1. Кривой возврат типов уже идет из SP
2.2. Исходя из того, что не User Defined datatypes отображаются нормально коды типов не совпадают для Sybase.ASEOLEDBProvider и ASEOLEDB

3. Посоветовали накатить EBF'ы (я так понял это так Sybase называет патчи). Дали EBF13955, EBF14280. Накатил. Правда накатывались они слегка странновато
: setup.exe сказал, что он может ставится только на уже установленный SDK и послал подальше. setupConsole.exe оказалась более сговорчивой
- проставила. Но EBF14280 ругался на то, что поперезаписывает все по верху и ниче работать не будет
Плюнул и переписали по верху. После этого dll'ки и %SYBASE%/DataAccess/OLEDB/sp/*.sql'ы - заменились. %SYBASE%/DataAccess/OLEDB/sp/*.sql'ы - накатил, но все осталось по прежнему


Дык к чему это я все - пока хочется все забороть штатными методами. Отсюда:
1. EBF'ы они идут один на все-все-все или на что-то конкретное, 4 example: отдельно для OLEDB, отдельно для ODBC, отдельно для ADONET etc?
2. EBF'ы кумулятивны: достаточно накатить последний или необходимо накатывать весь паравоз?
3. Где можно взять весь список этих EBF'ов?
4. Они скачиваются без ограничений/безвозмездно
?
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34654123
Ex_Soft
Дык к чему это я все - пока хочется все забороть штатными методами. Отсюда:
2. EBF'ы кумулятивны: достаточно накатить последний или необходимо накатывать весь паравоз?
3. Где можно взять весь список этих EBF'ов?
4. Они скачиваются без ограничений/безвозмездно
?

2. Есть , которые содержат весь пакет ообновлений, есть и по отдельности
3. http://www.sybase.com/ там необходимо зарегистироваться (бесплатно) и зайти в меню "download" где уже выбрать нужный пункт "EBFs/Maintenance".
4. Обычно бесплатны и свободны для скачивания, но есть и закрытые ебф'ы.
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34654414
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Овчинников
http://www.sybase.com/ там необходимо ... зайти в меню "download" где уже выбрать нужный пункт "EBFs/Maintenance"

Нашел в
Software Developer Kit
Platform: Windows x86
Software Developer Kit - EBF 14616: 15.0 ESD #9 15.0 21 Jun 2007 EBF/Patch
Software Developer Kit - EBF 14416: 15.0 ESD #8 15.0 20 Apr 2007 EBF/Patch
Software Developer Kit - EBF 14167: 15.0 ESD #7 15.0 24 Jan 2007 EBF/Patch
Software Developer Kit - EBF 14563: 12.5.1 ESD #18 12.5.1 18 May 2007 EBF/Patch
Software Developer Kit - EBF 14590: ODBC Ver 05.00.0129/OLE DB Ver 02.70.0082 Drivers by DataDirect 12.5.1 18 May 2007 EBF/Patch
Software Developer Kit - EBF 14280: 12.5.1 ESD #17 12.5.1 16 Feb 2007 EBF/Patch

Теперь вопросы такого плана:
1. В контексте
Ex_Soft
ASEOLEDB тянется еще с ASE 12.x и не является чем-либо специфичным конкретно для ASE 15.x only.

накатывать все? Или хватит последнего? Или, вообще: все же, 12-й для 12-го, а 15-ка для 15-ки?
2. ESD я так понял непрерывная нумерация в контексте продукта (из-за того, что EBF'ы идут непрерывно для всего-всего)?
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34657995
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
N-я часть марлезонского балету

Пока устаканиваемся с EBF'ами решили подрубить старый Sybase.ASEOLEDBProvider .
На
Код: plaintext
1.
2.
3.
begin transaction
exec sp_sproc_columns 'sp_Staff_Save'
rollback transaction
имеем


Server Message: Number 226, Severity 16
Server 'Bill15', Procedure 'sp_sproc_columns', Line 432:
SELECT INTO command not allowed within multi-statement transaction.
Server Message: Number 17260, Severity 16
Server 'Bill15', Procedure 'sp_autoformat', Line 202:
Can't run sp_autoformat from within a transaction.
Server Message: Number 3701, Severity 11
Server 'Bill15', Procedure 'sp_sproc_columns', Line 731:
Cannot drop the table '#spcol2result', because it doesn't exist in the system catalogs.
(1 row affected)
(return status = -6)

Вне транзакции - все сухо...
По какой гравицапе (MasterZiv
) теперь нуна стучать

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34680532
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Ex_Soft

Ex_SoftУ нас проблема с ХП, с помошЪю которых метод OleDbCommandBuilder.DeriveParameters() получает эти параметры
(http://www.sql.ru/forum/actualthread.aspx?tid=443704#4378962)
Хочеццца забороть это штатно. Т.е. не прибегая к правке ХП.



Покажите пожалуйста, где вы прочитали, что метод DeriveParameters реализован и поддерживается в стандартном (Sybase OLEDB Provider for ASE ver. 15.0.0.130) sybdrvoledb.dll ????

Думаю, вряд-ли покажете, так как такой метод НЕ РЕАЛИЗОВАН там, а именно в Sybase OLEDB Provider.
Реализация этого метода есть только для ADO.NET драйвера , а не для OLEDB.

ТО же самое касается и метода ChangeDatabase() ....

Вы что используете везде OleDbConnection а не ADODB.Connection ???
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34681815
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moris
Покажите пожалуйста, где вы прочитали, что метод DeriveParameters реализован и поддерживается в стандартном (Sybase OLEDB Provider for ASE ver. 15.0.0.130) sybdrvoledb.dll ????

Если честно, то - нигде. Просто, согласно MSDN , у System.Data.OleDb.OleDbCommandBuilder ЭстЪ такой метод. И любой нормальный провайдер должен его поддерживать/реализовывать. Согласитесь - на то оно и придумано было: поменял строку коннекта и по барабану: IB/FB ли, Sybase ли, Oracle ли, M$SQL ли...
moris
так как такой метод НЕ РЕАЛИЗОВАН там, а именно в Sybase OLEDB Provider

Гм... Ляно... Предположим, что не реализован. Допустим даже, что для совместимости с интерфейсом ЭстЪ какой-нить stub а-ля:
Код: plaintext
1.
2.
public static void DeriveParameters(OleDbCommand command)
{}
Но, тогда кто же, согласно
Ethereal
0000 28 a2 20 00 01 00 00 00 01 00 00 00 08 00 45 00 (. ...........E.
0010 00 7c 04 b4 40 00 80 06 c5 9a 0a 64 65 0c c0 a8 .|..@......de...
0020 00 15 04 2f 13 88 cd 7f 9f 2f 6d 55 0e c6 50 18 .../...../mU..P.
0030 fe 4c 93 f4 00 00 0f 01 00 54 00 00 00 00 21 47 .L.......T....!G
0040 00 00 00 00 65 78 65 63 20 73 70 5f 6f 6c 65 64 .... exec sp_oled
0050 62 5f 67 65 74 70 72 6f 63 65 64 75 72 65 63 6f b_getprocedureco
0060 6c 75 6d 6e 73 20 40 70 72 6f 63 65 64 75 72 65 lumns @procedure
0070 5f 6e 61 6d 65 20 3d 20 22 73 70 5f 43 4f 4e 54 _name = "sp_CONT
0080 52 41 43 54 5f 53 41 56 45 22 RACT_SAVE"

эту sp_oledb_getprocedurecolumns дергает
Или Вы хотите сказать, что System.Data.OleDb.OleDbCommandBuilder такое умное, что если в провайдере не реализован метод DeriveParameters он сам выкручивается, как может и, при этом, даже знает, что нужно дергать не sp_sproc_columns , а именно sp_oledb_getprocedurecolumns

moris
Реализация этого метода есть только для ADO.NET драйвера , а не для OLEDB.

1. Надеюсь, OLEDB употреблено в контексте sybdrvoledb.dll (Sybase OLEDB Provider for ASE) only
Потому как мы под sydaase.dll (ASE OLE DB Provider) уже третий год благополучно юзаем этот нереализованный метод.
2. BTW, AseCommandBuilder.DeriveParameters() дергает
Ethereal
0000 28 a2 20 00 01 00 00 00 01 00 00 00 08 00 45 00 (. ...........E.
0010 00 71 03 af 40 00 80 06 c6 aa 0a 64 65 0c c0 a8 .q..@......de...
0020 00 15 04 28 13 88 c6 bf 35 8d bc fd ed 9c 50 18 ...(....5.....P.
0030 ff dd bf 7f 00 00 0f 01 00 49 00 00 00 00 e6 13 .........I......
0040 00 10 73 70 5f 73 70 72 6f 63 5f 63 6f 6c 75 6d .. sp_sproc_colum
0050 6e 73 02 00 ec 1a 00 01 00 0f 40 70 72 6f 63 65 ns ........@proce
0060 64 75 72 65 5f 6e 61 6d 65 00 00 00 00 00 27 ff dure_name.....'.
0070 00 d7 0c 73 70 5f 54 65 73 74 54 79 70 65 73 ...sp_TestTypes

moris
ТО же самое касается и метода ChangeDatabase()

Гм...
Ethereal
0000 28 a2 20 00 01 00 00 00 01 00 00 00 08 00 45 00 (. ...........E.
0010 00 40 04 97 40 00 80 06 c5 f3 0a 64 65 0c c0 a8 .@..@......de...
0020 00 15 04 2f 13 88 cd 7f 9f 17 6d 55 0e 62 50 18 .../......mU.bP.
0030 fe b0 29 dc 00 00 0f 01 00 18 00 00 00 00 21 0b ..)...........!.
0040 00 00 00 00 75 73 65 20 74 65 73 74 64 62 .... use testdb

Другое дело, что он, я так подозреваю, кривоватый малехо: передается database, указанная в connectionString, а не параметр. Туда можно передать любую абвгедейку - даже exception'а не возникает, что, мол, нету такой database
. Опять же: OleDbConnection.Database изменяется. Кто его меняет

moris
Вы что используете везде OleDbConnection а не ADODB.Connection ???

Да. А что - это криминал

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34681834
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все дело в том, что свой драйвер OLEDB у Sybase появился ну совсем недавно. (Раньше использовался драйвер от DataDirect).
В момент разработки в первую очередь реализовывались и отлажаивались методы свойственные именно ADODB.Connection а не OleDbConnection.
Не спорю, что теоретически методы OleDbConnection тоже должны поддерживаться ... но как видим пока .....
Поэтому тут вариантов может быть 2:

1. попытаться использовать .ADO.NET драйвер для ASE (там эти методы точно реализованы)
либо
2. связаться с инженерами Sybase касательно планов полного полной поддержки методов OleDbConnection в Sybase OLEDB драйвере .


P.S. Касательно п.2 то я узнаю...

Кстати метод OleDbConnection.ChangeDatabase, то такой метод не может выполниться только потому, что свойство CurrentDatabase в Sybase OLEDB драйвере только для чтения.. О чем и выдается сообщение.
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34681923
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moris
Все дело в том, что свой драйвер OLEDB у Sybase появился ну совсем недавно. (Раньше использовался драйвер от DataDirect).

/me думает: да уж... субасевцам в руки тока попади...


moris
1. попытаться использовать .ADO.NET драйвер для ASE (там эти методы точно реализованы)

Это готовый проект, находящийся в промышленной эксплуатации. Никто переписывать его не будет. Просто решили мигрировать 12 -> 15 и получили...

moris
2. связаться с инженерами Sybase касательно планов полного полной поддержки методов OleDbConnection в Sybase OLEDB драйвере .

Уже написали вам... Ждем-с...
moris
Кстати метод OleDbConnection.ChangeDatabase, то такой метод не может выполниться только потому, что свойство CurrentDatabase в Sybase OLEDB драйвере только для чтения.. О чем и выдается сообщение.

1. У OleDbConnection нЭт property CurrentDatabase
2. У OleDbConnection ЭcтЪ property Database
Код: plaintext
1.
public virtual string Database {get;}
3. Наличие get'ера only никоим образом не мешает
Код: plaintext
1.
public virtual void ChangeDatabase(string value);
3.1. Послать серверу use value
3.2. В случае успеха самому изменить значение какой-нить private FDatabase (которую потом мы видим посредством get'ера)
4. Дык работает же под sydaase.dll (ASE OLE DB Provider). Правда, в контексте выше сказанного Вами, он, скорее всего, от DataDirect. Потому и работает
Наверное...
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34847957
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
n-я часть марлезонского балету

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
create procedure sp_BUSINESS_REGRES 
   @BUSINESS_ID_OUT numeric( 18 )  output, 
   @RecordModify D_RECORD_MODIFY_TIMESTAMP output , 
   @Business_Type numeric( 18 , 0 ) =null,  
   @Business_Status numeric( 18 , 0 ) =null,   
   @SumClame D_MONEY =null,   
   @SumFinal D_MONEY =null,  
   @SumClameGrn D_MONEY =null, 
   @SumFinalGrn D_MONEY =null, 
   @Business_Number varchar( 50  ) =null,  
   @DateOpen datetime =null, 
   @DateClose datetime =null, 
   @CauseClose varchar( 254  ) =null, 
   @TB_ContragentName varchar( 254 ) =null, 
   @TB_RelationContragent varchar( 254 ) =null, 
   @DD_TypeCliet numeric( 18 , 0 ) =null, 
   @RecordState D_RECORD_STATE =null,   
   @BUSINESS_ID numeric( 18 ) =null, 
   @UserId D_CLIENT_RELATION =null,      
   @BUSINESS_CASE_NUMBER varchar( 254 ) =null 
as
OleDbCommandBuilder.DeriveParameters() (sydaase.dll (ASE OLE DB Provider ver. 2.70.0.23))
ParameterNameDirectionBUSINESS_IDOutput


при выносе же output'овских параметров в конец
списка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
create procedure sp_BUSINESS_REGRES 
   @Business_Type numeric( 18 , 0 ) =null,  
   @Business_Status numeric( 18 , 0 ) =null,   
   @SumClame D_MONEY =null,   
   @SumFinal D_MONEY =null,  
   @SumClameGrn D_MONEY =null, 
   @SumFinalGrn D_MONEY =null, 
   @Business_Number varchar( 50  ) =null,  
   @DateOpen datetime =null, 
   @DateClose datetime =null, 
   @CauseClose varchar( 254  ) =null, 
   @TB_ContragentName varchar( 254 ) =null, 
   @TB_RelationContragent varchar( 254 ) =null, 
   @DD_TypeCliet numeric( 18 , 0 ) =null, 
   @RecordState D_RECORD_STATE =null,   
   @BUSINESS_ID numeric( 18 ) =null, 
   @UserId D_CLIENT_RELATION =null,      
   @BUSINESS_CASE_NUMBER varchar( 254 ) =null,
   @BUSINESS_ID_OUT numeric( 18 )  output, 
   @RecordModify D_RECORD_MODIFY_TIMESTAMP output 
as  
все сухо
OleDbCommandBuilder.DeriveParameters() (sydaase.dll (ASE OLE DB Provider ver. 2.70.0.23))
ParameterNameDirectionBUSINESS_IDInput

BTW
OleDbCommandBuilder.DeriveParameters() (sydaase.dll (ASE OLE DB Provider ver. 2.70.0.23))
ParameterNameDirectionBUSINESS_IDInput

при любых расположениях output'овских параметров. Это, типо, так нужно? Че-то я нигде не встречал запретов/настояний/рекомендаций насчет расположенния output'овских параметров. О5 25? Синдром КР? У кого?

P.S. select @@version
Adaptive Server Enterprise/12.5.1/EBF 11428/P/NT (IX86)/OS 4.0/ase1251/1823/32-bit/OPT/Wed Sep 17 11:10:54 2003

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34848125
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Copy -> Paste must die!!!

Правильно:
Ex_Soft
BTW OleDbCommandBuilder.DeriveParameters() (sybdrvoledb.dll (Sybase OLEDB Provider for ASE ver. 15.0.0.162))
ParameterNameDirectionBUSINESS_IDInput



P.S. На характер дернул еще руками sp_sproc_columns 'sp_BUSINESS_REGRES',null,null,'@BUSINESS_ID' при разных вариантах расположения output параметров:
sp_BUSINESS_REGRES;1@BUSINESS_ID0NULLnumeric1890100NULL6317NULL2NULL017NO
sp_BUSINESS_REGRES;1@BUSINESS_ID0NULLnumeric1890100NULL6315NULL2NULL015NO
Как говорицццо: найдите 10-ть отличий (ессесно за исключением colid && ordinal_position (17 ->15)) Как определяеццо PARAMETER_TYPE - х.з.
Ethereal'ом посмотрел - идет тока вызов выше указанной SP... В ней же рыццо - обломно...
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34848143
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.P.S. А в
Код: plaintext
1.
select * from syscolumns where id=object_id('sp_BUSINESS_REGRES')
status2 = 2 по честному только у output'овских параметров. BTW, status2 в sp_sproc_columns я вообще не нашел...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #34863756
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мистика какая-то

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create procedure TestParamDirection
   @FirstOutput numeric( 18 , 0 ) output,
   @First numeric( 18 , 0 )
as
begin
   declare
     @ReturnValue int

   set @ReturnValue= 0 

   return(@ReturnValue)
end
Как и "положено" возврашает
FirstOutputOutputFirstOutput
Но
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create procedure TestParamDirection
   @FirstOutput numeric( 18 , 0 ) output,
   @FirstI numeric( 18 , 0 )
as
begin
   declare
     @ReturnValue int

   set @ReturnValue= 0 

   return(@ReturnValue)
end
все сухо:
FirstOutputOutputFirstIInput
Получаецо, если имя input'овского параметра являецо подстрокой имени output'овского параметра, то input'овый параметр становицо output'овым. Причем этот глюк в dll'ке. Потому как
Ethereal
0000 00 00 02 00 00 00 40 54 20 00 02 00 08 00 45 00 ......@T .....E.
0010 01 9f d1 72 00 00 7f 06 38 b9 c0 a8 00 15 0a 64 ...r....8......d
0020 65 0c 13 88 05 12 5a 97 d4 55 54 02 c2 0f 50 18 e.....Z..UT...P.
0030 fe 1b e3 22 00 00 04 01 01 77 00 00 00 00 00 04 ...".....w......
0040 6d 6f 64 65 30 00 00 00 02 00 00 00 27 14 00 ae mode0.......'...
0050 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060 00 00 00 00 00 00 00 00 d1 06 74 65 73 74 64 62 ..........testdb
0070 03 64 62 6f 14 54 65 73 74 50 61 72 61 6d 44 69 .dbo.TestParamDi
0080 72 65 63 74 69 6f 6e 3b 31 0c 52 45 54 55 52 4e rection;1.RETURN
0090 5f 56 41 4c 55 45 05 00 02 04 00 03 69 6e 74 04 _VALUE......int.
00a0 0a 00 00 00 04 04 00 00 00 02 00 00 02 0a 00 00 ................
00b0 00 00 38 00 00 00 02 04 00 00 00 00 00 02 4e 4f ..8...........NO
00c0 0b 52 65 74 75 72 6e 20 54 79 70 65 d1 06 74 65 .Return Type..te
00d0 73 74 64 62 03 64 62 6f 14 54 65 73 74 50 61 72 stdb.dbo.TestPar
00e0 61 6d 44 69 72 65 63 74 69 6f 6e 3b 31 0c 40 46 amDirection;1.@F
00f0 69 72 73 74 4f 75 74 70 75 74 00 00 02 02 00 07 irstOutput......
0100 6e 75 6d 65 72 69 63 04 12 00 00 00 04 09 00 00 numeric.........
0110 00 02 00 00 02 0a 00 00 00 00 3f 01 00 00 02 02 ..........?.....
0120 00 00 04 00 00 00 00 01 00 02 4e 4f 03 6f 75 74 ..........NO.out
0130 d1 06 74 65 73 74 64 62 03 64 62 6f 14 54 65 73 ..testdb.dbo.Tes
0140 74 50 61 72 61 6d 44 69 72 65 63 74 69 6f 6e 3b tParamDirection;
0150 31 06 40 46 69 72 73 74 00 00 02 02 00 07 6e 75 1.@First......nu
0160 6d 65 72 69 63 04 12 00 00 00 04 09 00 00 00 02 meric...........
0170 00 00 02 0a 00 00 00 00 3f 02 00 00 02 02 00 00 ........?.......
0180 04 00 00 00 00 02 00 02 4e 4f 02 69 6e ff 51 00 ........NO.in.Q.
0190 02 00 03 00 00 00 ff 41 00 02 00 03 00 00 00 79 .......A.......y
01a0 00 00 00 00 fd 00 00 02 00 03 00 00 00 .............

Ethereal
0000 00 00 02 00 00 00 40 54 20 00 02 00 08 00 45 00 ......@T .....E.
0010 01 a4 9f 5a 00 00 7f 06 6a cc c0 a8 00 15 0a 64 ...Z....j......d
0020 65 0c 13 88 05 10 00 30 be 96 50 25 40 e4 50 18 e......0..P%@.P.
0030 fe 1b e0 2a 00 00 04 01 01 7c 00 00 00 00 00 04 ...*.....|......
0040 6d 6f 64 65 30 00 00 00 02 00 00 00 27 14 00 ae mode0.......'...
0050 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060 00 00 00 00 00 00 00 00 d1 06 74 65 73 74 64 62 ..........testdb
0070 03 64 62 6f 14 54 65 73 74 50 61 72 61 6d 44 69 .dbo.TestParamDi
0080 72 65 63 74 69 6f 6e 3b 31 0c 52 45 54 55 52 4e rection;1.RETURN
0090 5f 56 41 4c 55 45 05 00 02 04 00 03 69 6e 74 04 _VALUE......int.
00a0 0a 00 00 00 04 04 00 00 00 02 00 00 02 0a 00 00 ................
00b0 00 00 38 00 00 00 02 04 00 00 00 00 00 02 4e 4f ..8...........NO
00c0 0b 52 65 74 75 72 6e 20 54 79 70 65 d1 06 74 65 .Return Type..te
00d0 73 74 64 62 03 64 62 6f 14 54 65 73 74 50 61 72 stdb.dbo.TestPar
00e0 61 6d 44 69 72 65 63 74 69 6f 6e 3b 31 0c 40 46 amDirection;1.@F
00f0 69 72 73 74 4f 75 74 70 75 74 00 00 02 02 00 07 irstOutput......
0100 6e 75 6d 65 72 69 63 04 12 00 00 00 04 09 00 00 numeric.........
0110 00 02 00 00 02 0a 00 00 00 00 3f 01 00 00 02 02 ..........?.....
0120 00 00 04 00 00 00 00 01 00 02 4e 4f 03 6f 75 74 ..........NO.out
0130 d1 06 74 65 73 74 64 62 03 64 62 6f 14 54 65 73 ..testdb.dbo.Tes
0140 74 50 61 72 61 6d 44 69 72 65 63 74 69 6f 6e 3b tParamDirection;
0150 31 0b 40 46 69 72 73 74 49 6e 70 75 74 00 00 02 1.@FirstInput...
0160 02 00 07 6e 75 6d 65 72 69 63 04 12 00 00 00 04 ...numeric......
0170 09 00 00 00 02 00 00 02 0a 00 00 00 00 3f 02 00 .............?..
0180 00 02 02 00 00 04 00 00 00 00 02 00 02 4e 4f 02 .............NO.
0190 69 6e ff 51 00 02 00 03 00 00 00 ff 41 00 02 00 in.Q........A...
01a0 03 00 00 00 79 00 00 00 00 fd 00 00 02 00 03 00 ....y...........
01b0 00 00 ..

возвращаецо одно и то же...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
OLEDB 4 ASE > 12.5.1
    #35071810
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
те же гости в ту же хату
Вот какой нуна обладать необЪяснимой индуской логикой чтобы:
Код: plaintext
\n@Business_Type numeric( 18 , 0 ) =null,   \n@Business_Status numeric( 18 , 0 ) =null,    \n@SumClame D_MONEY =null,    \n@SumFinal D_MONEY =null,   \n@SumClameGrn D_MONEY =null,  \n@SumFinalGrn D_MONEY =null,  \n@Business_Number varchar( 50  ) =null,   \n@DateOpen datetime =null,  \n@DateClose datetime =null,  \n@CauseClose varchar( 254  ) =null,    \n@RecordState D_RECORD_STATE =null,    \n@BUSINESS_ID numeric( 18 ) =null,  \n@UserId D_CLIENT_RELATION =null,       \n@BUSINESS_CASE_NUMBER varchar( 254 ) =null, \n@SumClameCodeInt     smallint=null,\n@SumClameRate        decimal( 18 , 4 )=null,\n@SumClameExchangeId  numeric( 10 )=null,\n@RecordModify D_RECORD_MODIFY_TIMESTAMP output ,  \n@BUSINESS_ID_OUT numeric( 18 )  output  \n
OleDbCommandBuilder.DeriveParameters() (sydaase.dll (ASE OLE DB Provider ver. 2.70.0.23))
@SumClameRate Input@SumClameExchangeId Output

а
Код: plaintext
\n@Business_Type numeric( 18 , 0 ) =null,   \n@Business_Status numeric( 18 , 0 ) =null,    \n@SumClame D_MONEY =null,    \n@SumFinal D_MONEY =null,   \n@SumClameGrn D_MONEY =null,  \n@SumFinalGrn D_MONEY =null,  \n@Business_Number varchar( 50  ) =null,   \n@DateOpen datetime =null,  \n@DateClose datetime =null,  \n@CauseClose varchar( 254  ) =null,    \n@RecordState D_RECORD_STATE =null,    \n@BUSINESS_ID numeric( 18 ) =null,  \n@UserId D_CLIENT_RELATION =null,       \n@BUSINESS_CASE_NUMBER varchar( 254 ) =null, \n@SumClameCodeInt     smallint=null,\n@SumClameExchangeId  numeric( 10 )=null,\n@SumClameRate        decimal( 18 , 4 )=null,\n@RecordModify D_RECORD_MODIFY_TIMESTAMP output ,  \n@BUSINESS_ID_OUT numeric( 18 )  output  \n
OleDbCommandBuilder.DeriveParameters() (sydaase.dll (ASE OLE DB Provider ver. 2.70.0.23))
@SumClameExchangeId Input @SumClameRate Input

Выходит мое "предположение"
Ex_Soft
Получаецо, если имя input\'овского параметра являецо подстрокой имени output\'овского параметра, то input\'овый параметр становицо output\'овым.

ошибочно. Потому как в этом случае мы имеем дело с, чиста канкретна, input\'овскими параметрами, расположенными перед output\'овскими, и названия которых ни грамма не являются подстроками наименований output\'овских. Хотя, для чистоты эксперимента, таки, поихгрался с названиями на предмет подстрок - що мертвому припарки. Спасает только перестановка

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / OLEDB 4 ASE > 12.5.1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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