Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что за ошибка? [D6, MSSQL]


Страницы:   1 2

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]

Конкретнее...Как вставляешь, где ошибка....


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо