Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Вниз

Что за ошибка?   Найти похожие ветки 

 
Explorer   (2002-04-17 08:23) [0]

Мастера!

При работе приложения с БД (вставка данных) появлется ошибка:

[Microsoft][ODBC Sql Server Driver] Invalid character value for cast specification

Вроде-бы всё проверил: и типы данных, и на "пустоту" полей.
В чем проблема?


 
Explorer   (2002-04-17 09:27) [1]

Что с такой проблемой ни кто не сталкивался?




 
Johnmen   (2002-04-17 09:33) [2]

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


 
wicked   (2002-04-17 09:34) [3]

вот щас все телепаты соберутся и решат твою проблему... ты бы хоть запрос привёл, и структуру таблички, куда вставляешь...
а еще проверь, нет ли на ней триггеров...


 
Explorer   (2002-04-17 10:02) [4]

Вставляю через StoredProc используя процедуру в MS SQL.
Скажите, что вообще означает эта ошибка.



 
wicked   (2002-04-17 10:04) [5]

означает, что где-то типы не играют...
придётся тебе всё-таки показать текст твоей процедуры... :)


 
Explorer   (2002-04-17 10:07) [6]

Вот так происходит вставка:

{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("@


 
Explorer   (2002-04-17 10:09) [7]

А вот процедура:


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


 
wicked   (2002-04-17 10:17) [8]

хм... а структура таблицы Payments?...


 
Johnmen   (2002-04-17 10:23) [9]

Обрати внимание на следиющую запись :
...
StoredProcWritePayments.ParamByName("@


 
Explorer   (2002-04-17 10:23) [10]

Таблица:

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 (текущая дата)


 
Donal_Graeme   (2002-04-17 10:27) [11]

типы параметров у StoredProc на форме выставил?


 
Explorer   (2002-04-17 10:27) [12]

>Johnmen

на что именно: имя параметра @


 
Explorer   (2002-04-17 10:31) [13]

>Donal_Graeme

Выставил. Вопрос: типы должны в точности (то есть по названию)
совпадать с описанными в процедуре?


 
Johnmen   (2002-04-17 10:31) [14]

Хотелось бы уточнить - там "C" это рус. или лат. ?


 
Explorer   (2002-04-17 10:33) [15]

>Donal_Graeme

Выставил. Вопрос: типы должны в точности (то есть по названию)
совпадать с описанными в процедуре?


 
Donal_Graeme   (2002-04-17 10:34) [16]

по возможности :-) иначе - наиболее близкое по смыслу.


 
Explorer   (2002-04-17 10:35) [17]

>Johnmen

Английская. То же уже проверял. Даже все скопировал из БД!


 
wicked   (2002-04-17 10:38) [18]

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

попробуй поиграй с этим, имхо собака порылась там....


 
wicked   (2002-04-17 10:40) [19]

ЗЫ забыл добавить - я наивно предположил, что id_provodka у тебя identity...
ЗЫЫ и еще - добавь после as в процедуру set nocount on


 
Explorer   (2002-04-17 10:43) [20]

Сейчас попробую


 
Donal_Graeme   (2002-04-17 17:13) [21]

и? :-)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.005 c
4-39904
RESEt
2002-03-08 16:24
2002.05.13
Выключить комп програмно.


7-39880
Polard
2002-02-14 12:49
2002.05.13
Версия Win


1-39691
Johnmen
2002-04-29 12:40
2002.05.13
TEdit и звуковые эффекты


6-39823
boogier
2002-03-01 11:47
2002.05.13
Как получить список доступных в сети ресурсов компьютера по имени компьютера?


1-39709
Reticent
2002-04-29 17:30
2002.05.13
TStringList





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский