![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что за ошибка? [D6, MSSQL]
Explorer © (2002-04-17 08:23:00)Мастера!
При работе приложения с БД (вставка данных) появлется ошибка:
[Microsoft][ODBC Sql Server Driver] Invalid character value for cast specification
Вроде-бы всё проверил: и типы данных, и на "пустоту" полей.
В чем проблема?
Donal_Graeme (2002-04-17 17:13:00) [1]и? :-)
Explorer (2002-04-17 10:43:00) [2]Сейчас попробую
wicked (2002-04-17 10:40:00) [3]ЗЫ забыл добавить - я наивно предположил, что id_provodka у тебя identity...
ЗЫЫ и еще - добавь после as в процедуру set nocount on
wicked (2002-04-17 10:38:00) [4]2 Explorer ©
слюшай, дарагой.... у меня всё работает... :)
а ты как параметр @err в adostoredproc обьявил то?... он же у тебя OUTPUT... например, в query analyzer"е это делается так:
declare @ee int
exec procaddpayment 10, 1, 2, 0, 3, "2002-04-17", "2002-04-15", "2002-04-19", 500, 200, "2002-04-17", 0.5, 0.2, 0, @ee output
print @ee
go
select * from payments
попробуй поиграй с этим, имхо собака порылась там....
Explorer (2002-04-17 10:35:00) [5]>Johnmen
Английская. То же уже проверял. Даже все скопировал из БД!
Donal_Graeme (2002-04-17 10:34:00) [6]по возможности :-) иначе - наиболее близкое по смыслу.
Explorer (2002-04-17 10:33:00) [7]>Donal_Graeme
Выставил. Вопрос: типы должны в точности (то есть по названию)
совпадать с описанными в процедуре?
Johnmen (2002-04-17 10:31:00) [8]Хотелось бы уточнить - там "C" это рус. или лат. ?
Explorer (2002-04-17 10:31:00) [9]>Donal_Graeme
Выставил. Вопрос: типы должны в точности (то есть по названию)
совпадать с описанными в процедуре?
Donal_Graeme (2002-04-17 10:27:00) [10]типы параметров у StoredProc на форме выставил?
Explorer (2002-04-17 10:27:00) [11]>Johnmen
на что именно: имя параметра @
Explorer (2002-04-17 10:23:00) [12]Таблица:
id_provodka int 4
id_dogovor int 4
Summa money 8
SummaDop1 money 8
SummaDop2_ndsfor613 money 8
Kol_voDays int 4
DateOfPaymentOrOper smalldatetime 4
BeginOfPeriod smalldatetime 4
EndOfPeriod smalldatetime 4
account_dt int 4
account_kr int 4
NaimenovOfPay varchar 100
Tariff money 8
StavkaNDS decimal 9
ConditionOfPay smallint 2
DateCreate datetime 8 (текущая дата)
Johnmen (2002-04-17 10:23:00) [13]Обрати внимание на следиющую запись :
...
StoredProcWritePayments.ParamByName("@
wicked (2002-04-17 10:17:00) [14]хм... а структура таблицы Payments?...
Explorer (2002-04-17 10:09:00) [15]А вот процедура:
CREATE PROCEDURE dbo.PROCAddPayment @id_dogovor int, @Summa money, @SummaDop1 money, @SummaDop2_ndsfor613 money,
@Kol_voDays int, @DateOfPaymentOrOper smalldatetime,
@BeginOfPeriod smalldatetime, @EndOfPeriod smalldatetime, @account_dt int, @account_kr int, @NaimenovOfPay varchar(100), @Tariff money,
@StavkaNDS decimal, @ConditionOfPay smallint, @ERR int OUTPUT
AS
BEGIN tran AddPayment
if(@account_kr=200 /*accounts.id_account, accounts.balance=701*/)
begin
insert into Payments (id_dogovor, Summa, SummaDop1, SummaDop2_ndsfor613, Kol_voDays, DateOfPaymentOrOper,
BeginOfPeriod, EndOfPeriod, account_dt, account_kr, NaimenovOfPay, Tariff,
StavkaNDS, ConditionOfPay)
values(@id_dogovor, @Summa, @SummaDop1, @SummaDop2_ndsfor613, @Kol_voDays, @DateOfPaymentOrOper,
@BeginOfPeriod, @EndOfPeriod, @account_dt, @account_kr, @NaimenovOfPay, @Tariff,
@StavkaNDS, @ConditionOfPay)
end
if(@@error!=0) begin
rollback tran AddPayment
select @ERR=1
end
else begin
select @ERR=0
commit tran AddPayment
end
GO
Explorer (2002-04-17 10:07:00) [16]Вот так происходит вставка:
{StoredProcWritePayments.Active:=false;
StoredProcWritePayments.ParamByName("@id_dogovor").AsInteger:=IdOfDog;
StoredProcWritePayments.ParamByName("@Summa").AsCurrency:=Summa701;
StoredProcWritePayments.ParamByName("@SummaDop1").AsCurrency:=Summa701;
StoredProcWritePayments.ParamByName("@SummaDop2_ndsfor613").AsCurrency:=0;
StoredProcWritePayments.ParamByName("@Kol_voDays").AsInteger:=Days701;
StoredProcWritePayments.ParamByName("@DateOfPaymentOrOper").AsDateTime:=date();
StoredProcWritePayments.ParamByName("@BeginOfPeriod").AsDateTime:=Date701Begin.Date;
StoredProcWritePayments.ParamByName("@EndOfPeriod").AsDateTime:=Date701End.Date;
StoredProcWritePayments.ParamByName("@account_dt").AsInteger:=500;
StoredProcWritePayments.ParamByName("@account_kr").AsInteger:=200;
StoredProcWritePayments.ParamByName("@NaimenovOfPay").AsString:=
DateToStr(Date701Begin.Date);
StoredProcWritePayments.ParamByName("@Tariff").AsCurrency:=
DatasModule.QueryDogovor.FieldByName("CostPerDayDogovor").AsCurrency;
StoredProcWritePayments.ParamByName("@StavkaNDS").AsFloat:=
DatasModule.QueryDogovor.FieldByName("NDSDogovor").AsFloat;
StoredProcWritePayments.ParamByName("@
wicked (2002-04-17 10:04:00) [17]означает, что где-то типы не играют...
придётся тебе всё-таки показать текст твоей процедуры... :)
Explorer (2002-04-17 10:02:00) [18]Вставляю через StoredProc используя процедуру в MS SQL.
Скажите, что вообще означает эта ошибка.
wicked (2002-04-17 09:34:00) [19]вот щас все телепаты соберутся и решат твою проблему... ты бы хоть запрос привёл, и структуру таблички, куда вставляешь...
а еще проверь, нет ли на ней триггеров...
Johnmen (2002-04-17 09:33:00) [20]Конкретнее...Как вставляешь, где ошибка....