Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 ntext у параметра хр процедуры через ADO  [new]
mk
Guest
У меня возникла проблема при работе с хранимой процедурой через ADO.
Если параметр типа ntext, я указываю при создании Command тип adLongVarWChar у параметра, но почему-то выдается сообщение про incompatible types :( В чем может быть дело?
25 апр 03, 21:44    [185318]     Ответить | Цитировать Сообщить модератору
 Re: ntext у параметра хр процедуры через ADO  [new]
jimmers
Member

Откуда: Санкт-Петербург - New York City
Сообщений: 5069
Следует указывать adWChar.
А вообще почитать раздел Mapping Data Types в Books Online - там все мэппинги есть.
25 апр 03, 22:39    [185354]     Ответить | Цитировать Сообщить модератору
 Re: ntext у параметра хр процедуры через ADO  [new]
mk
Guest
Спасибо, но теперь другая проблема: Error converting data type. А не может быть дело в порядке параметров? Или какое-нибудь ограничение на количество или размер? Просто ничего не могу найти по этому в документации.
26 апр 03, 10:49    [185406]     Ответить | Цитировать Сообщить модератору
 Re: ntext у параметра хр процедуры через ADO  [new]
jimmers
Member

Откуда: Санкт-Петербург - New York City
Сообщений: 5069
Вы бы код привели весь - и процедуры и ADO
26 апр 03, 10:51    [185408]     Ответить | Цитировать Сообщить модератору
 Re: ntext у параметра хр процедуры через ADO  [new]
mk
Guest
Примерно так:
ADO:

Set Cmd.ActiveConnection = GlobConnection
With Cmd
.CommandType = adCmdStoredProc
.CommandText = "dbInsert_"& TableName
End With
For Each rsFld In FieldsColl
sParmName = "@" + rsFld.Name
Set Prm = Cmd.CreateParameter(sParmName, rsFld.DBType, adParamInput)
If rsFld.DBType = adWChar Then Prm.Size = Len(rsFld.Value)
Prm.Value = rsFld.Value
Cmd.Parameters.Append Prm
Next

sParmName = "@inserted"
Set Prm = Cmd.CreateParameter(sParmName, adInteger, adParamOutput)
Cmd.Parameters.Append Prm
Cmd.Parameters(sParmName).Value = vbFalse

Cmd.Execute


Процедура:

CREATE PROCEDURE dbo.dbInsert_Field   @RusName nvarchar(128),  @dbName ntext, @SQLName ntext, @Query ntext, @RefName ntext, @Parameter smallint, @IsString smallint, @FilterType int, @RefDirection int, @FilterTableId int,

@TableSynonim nvarchar(128),@RefTable nvarchar(128),
@YesName nvarchar(128), @NoName nvarchar(128), @ValuesList nvarchar(128),
@Id int, @inserted int OUTPUT
...
26 апр 03, 11:16    [185414]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить