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

Вниз

Помогите со StoredProc   Найти похожие ветки 

 
AleksandrKu   (2003-04-09 14:36) [0]

при вызове прицедуры выдает сообщение что неможет преобразовать тип varchar в int хотя преобразую Varchar в datetime
попробывал прописать значения напрямую все равно напомогает
что может быть и как с этим бороться?
текст процедуры
CREATE PROCEDURE Dbo.create_dog
@IdOper int,
@IdGD int,
@IdGB int,
@IdKontr int,
@IdTip int,
@Summa money,
@SummaP money,
@SummaR money,
@DataDog varchar(10),
@DateIsp varchar(10),
@DayToIsp int,
@DateOf varchar(10),
@NumDog varchar (50),
@Prim varchar(254)
as
declare
@ident int;

insert into dogov
(IdOper, IdGD, IdGB, IdKontr, IdTip, Summa, SummaP, SummaR, DataDog, DateIsp, DateOf, NumDog, Prim)
values (@IdOper, @IdGD, @IdGB, @IdKontr, @IdTip, @Summa, @SummaP, @SummaR, convert(datetime,"01.01.03" ,104), convert(Datetime,"01.02.03" ,104), convert(datetime,"01.03.03" ,104) , @NumDog, @Prim)
GO


 
stone   (2003-04-09 14:43) [1]

set dateformat dmy
insert into dogov (IdOper, IdGD, IdGB, IdKontr, IdTip, Summa, SummaP, SummaR, DataDog, DateIsp, DateOf, NumDog, Prim)
values (@IdOper, @IdGD, @IdGB, @IdKontr, @IdTip, @Summa, @SummaP, @SummaR, "01.01.03", "01.02.03", "01.03.03",@NumDog, @Prim)


 
AleksandrKu   (2003-04-09 14:47) [2]

Спасибочки надеюсь поможет сейчас попробую


 
AleksandrKu   (2003-04-09 15:02) [3]

Не некатит опять тоже самое выдает


 
Zz_   (2003-04-09 15:07) [4]

Параметры в ХП передаются не по имени, а по порядковому номеру.
Наверняка у тебя несоответсвие.
Покажи как создаешь параметры в Delphi


 
AleksandrKu   (2003-04-09 15:10) [5]

My.create_dog.Parameters.ParamByName("@DataDog").value:=DataDog.text;
My.create_dog.Parameters.ParamByName("@DateIsp").value:=dateIsp.text;
My.create_dog.Parameters.ParamByName("@NumDog").value:=NumDog.text;
My.create_dog.Parameters.ParamByName("@IdOper").value:=my.operac.fieldbyname("link_id").asinteger;
My.create_dog.Parameters.ParamByName("@IdGD").value:=my.GenDir.fieldbyname("link_id").asinteger;
My.create_dog.Parameters.ParamByName("@IdGB").value:=my.GlaBuh.fieldbyname("link_id").asinteger;
My.create_dog.Parameters.ParamByName("@IdKontr").value:=my.View_kontr.fieldbyname("link_id").asinteger;
My.create_dog.Parameters.ParamByName("@IdTip").value:=my.Tip_oper.fieldbyname("link_id").asinteger;
My.create_dog.Parameters.ParamByName("@Summa").value:=strtofloat(Summa.caption);
My.create_dog.Parameters.ParamByName("@SummaP").value:=strtofloat(SummaP.Caption);
My.create_dog.Parameters.ParamByName("@SummaR").value:=strtofloat(SummaR.Caption);

My.create_dog.Parameters.ParamByName("@DayToIsp").value:=strtoint(DayToIsp.caption);
My.create_dog.Parameters.ParamByName("@DateOf").value:=datetostr(now);
{param:="@Dohod";
Set_Param_Proc(my.Update_dog,param ,NumDog.Text);
param:="@FlSobs";
Set_Param_Proc(my.Update_dog,param ,NumDog.Text);}
{ My.create_dog.Parameters.ParamByName("@Prim").value:=prim.Text;}
try
my.Create_dog.ExecProc;
MessageDlg(vartostr(my.create_dog.Parameters.Parambyname("@Return_Value").value),mtError,[mbOk],0);
Edit_dogov.Close;
{ action:=caFree;}
except
MessageDlg("


 
Zz_   (2003-04-09 15:11) [6]

Не присваиваешь, а создаешь


 
NAlexey   (2003-04-09 15:21) [7]

А почему ты решил что это так? -
convert(datetime,"01.03.03" ,104)
Вот так:
select convert(datetime,Cast("01.03.03" as DateTime) ,104)


 
AleksandrKu   (2003-04-09 15:23) [8]

>NAlexey
вообщето хелр читал но насколько понял на столько так и написал


 
AleksandrKu   (2003-04-09 15:24) [9]

>Zz_
Насколько я знаю := - оператор присваивания а создается (добавляется)параметр командой Add


 
AleksandrKu   (2003-04-09 15:28) [10]

Не
select convert(datetime,Cast("01.03.03" as DateTime) ,104)
то же самое некатит


 
NAlexey   (2003-04-09 15:31) [11]

>вообщето хелр читал но насколько понял на столько так и написал
Погоди, у тебя написано:
@DateIsp varchar(10), - поле varchar. Так?
ты пытаешься записать-
convert(datetime, "01.03.03" ,104)
так вот выделенная часть у тебя и так varchar. А конверт у тебя написан так, чтобы преобразовывать DateTime в varchar. Если ты напишешь:
select convert(DateTime, GetDate(), 104). все нормально заработает. Вот и не понятно зачем тебе конвертить varchar в varchar ч.з дату. По видимому ты хочешь как то отформатить ее в соответсвии с кодом 104-German dd.mm.yy . А иначе в этом смысла нет.


 
NAlexey   (2003-04-09 15:35) [12]

>select convert(datetime,Cast("01.03.03" as DateTime) ,104)
>то же самое некатит
Не надо писать в своем запросе
select convert(datetime,Cast("01.03.03" as DateTime) ,104)надо подставить везде заместо
convert(datetime,"01.01.03" ,104) и других такихже вот так
(datetime,Cast("01.03.03" as DateTime) ,104)
а если и так не проходит значит дело не здесь, а в том что ты в другие параметры грязь передаешь.


 
AleksandrKu   (2003-04-09 15:36) [13]

нет немного нетак я дату передаю переменной @DateIsp varchar
а в поле БД DateIsp куда я записываю значение переменной типа DateTime!


 
Zz_   (2003-04-09 15:38) [14]

Давай по порядку.

В QA вызов ХП выполняется ?


 
AleksandrKu   (2003-04-09 15:44) [15]

Конечно причем либо только с полями DateTime либо с полями Int


 
NAlexey   (2003-04-09 15:45) [16]

Повторю:
select convert(datetime,Cast("01.03.03" as DateTime) ,104) -
эта строка преобразует "01.03.03" сначала в дату, а потом в varchar в соответсвии с форматом 104.
>нет немного нетак я дату передаю переменной @DateIsp varchar
>а в поле БД DateIsp куда я записываю значение переменной типа >DateTime!
А вот с этого надо было начинать, что тебе varchar надо преобразовывать в дату. Тогда просто так, безо всяких Convert -замени все Convert на Cast("01.03.03" as DateTime). И если у тебя поле в BD типа DateTime то строка пришедшая в виде "01.03.03"преобразуется в DateTime все.


 
Zz_   (2003-04-09 15:50) [17]

А попробуй руками задать параметры

ADOSP.Parameters.Clear;
ADOSP.Parameters.CreateParameter("@RETURNING_VALUE", ftInteger,pdReturnValue,4,0);
ADOSP.Parameters.CreateParameter("@I_ID", ftInteger,pdInput, 4,0);

....

в том же порядке, что и в ХП

Что будет ?


 
AleksandrKu   (2003-04-09 16:34) [18]

о вроде получилось через cast и переставил в программе параметры попорядку как в ХП но..
у меня в базе дата храниться в формате храниться дд.мм.гггг передаю в этомже формате а cast переворачивает в формат мм.дд.гггг как можно установить формат даты?
если в начале процедуры поставлю set dateformat dmy поможет


 
NAlexey   (2003-04-09 16:53) [19]

Меню Start->Programs->Microsoft SQL Server->Client Network Utility->DBLibraryOptions
Галки AutomaticAnsiTOOEM Convertion и UseInternationalSetting должны стоять, проверь.


 
AleksandrKu   (2003-04-09 16:55) [20]

не Set DateFormat dmy помогло



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

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

Наверх





Память: 0.49 MB
Время: 0.008 c
1-91274
Pk
2003-04-16 17:15
2003.04.28
Распечатать содержимое Gridа


14-91522
Феликс
2003-04-09 12:58
2003.04.28
Сколько стоит заряжающее устройство?


14-91505
NickBat
2003-04-10 16:32
2003.04.28
Про творчество...


1-91292
Жорик
2003-04-17 12:46
2003.04.28
Работа с форматом TIFF в делфях...


3-91142
KMI
2003-04-08 19:45
2003.04.28
Перехват окна пароля БД





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский