안녕하세요
스토어드 프로시저를 사용해서 DB를 Insert, update, delete 하고 싶어서 사용했는데.
general Sql error 가 나오는군요..
우선 서버는 MSSQL 7.0 이고요..
delphi 5.0으로 작업을 했어요
서버와 연결은 TDATABASE 로 연결했구요
TstoredProc 로 TDATABASE와 연결 StoredProceName을 린크해서 사용했어요
TStoredProc의 구성은요
CREATE PROCEDURE [sp_insert_OdUser_1]
(@DbLogin_1 [varchar](10),
@DbPass_2 [varchar](10),
@CcName_3 [varchar](20),
@Permission_4 [char](1))
AS INSERT INTO [Sworder].[dbo].[OdUser]
( [DbLogin],
[DbPass],
[CcName],
[Permission])
VALUES
( @DbLogin_1,
@DbPass_2,
@CcName_3,
@Permission_4)
입니다.
Params 는
@DbLogin_1, @DbPass_2, @CcName_3, @Permission_4 의 paramType 를 ptInput 로 했어요...
파라메타는 전송이 되는데 ExecProc 사용시 general Sql error 가 나요...
소스는
procedure TF_User.SpeedButton4Click(Sender: TObject);
begin
DM.sp_user.Params[1].Asstring := 'ID';
DM.sp_user.Params[2].Asstring := 'pass';
DM.sp_user.Params[3].Asstring := 'name';
DM.sp_user.Params[4].Asstring := 'U';
DM.sp_user.Prepare;
DM.sp_user.ExecProc;
end;
입니다.
아시는 분 꼭 가르쳐 주시면 감사하겠습니다.
이거 정말 연결은 되는데 자꾸 에라가 나서 말이지요.. 꼭 부탁 드립니다.
> 안녕하세요
> 스토어드 프로시저를 사용해서 DB를 Insert, update, delete 하고 싶어서 사용했는데.
> general Sql error 가 나오는군요..
> 우선 서버는 MSSQL 7.0 이고요..
> delphi 5.0으로 작업을 했어요
> 서버와 연결은 TDATABASE 로 연결했구요
> TstoredProc 로 TDATABASE와 연결 StoredProceName을 린크해서 사용했어요
> TStoredProc의 구성은요
>
> CREATE PROCEDURE [sp_insert_OdUser_1]
> (@DbLogin_1 [varchar](10),
> @DbPass_2 [varchar](10),
> @CcName_3 [varchar](20),
> @Permission_4 [char](1))
>
> AS INSERT INTO [Sworder].[dbo].[OdUser]
> ( [DbLogin],
> [DbPass],
> [CcName],
> [Permission])
>
> VALUES
> ( @DbLogin_1,
> @DbPass_2,
> @CcName_3,
> @Permission_4)
> 입니다.
>
> Params 는
> @DbLogin_1, @DbPass_2, @CcName_3, @Permission_4 의 paramType 를 ptInput 로 했어요...
> 파라메타는 전송이 되는데 ExecProc 사용시 general Sql error 가 나요...
> 소스는
> procedure TF_User.SpeedButton4Click(Sender: TObject);
> begin
> DM.sp_user.Params[1].Asstring := 'ID';
> DM.sp_user.Params[2].Asstring := 'pass';
> DM.sp_user.Params[3].Asstring := 'name';
> DM.sp_user.Params[4].Asstring := 'U';
> DM.sp_user.Prepare;
> DM.sp_user.ExecProc;
> end;
> 입니다.
> 아시는 분 꼭 가르쳐 주시면 감사하겠습니다.
> 이거 정말 연결은 되는데 자꾸 에라가 나서 말이지요.. 꼭 부탁 드립니다.
---------------------------------
ADO를 사용한 Storedprocedure 예제입니다.
도움이 되시길....
with ADOStoredProc1 do
begin
Close;
Parameters.Clear;
ProcedureName := 'xxx_test';
Parameters.CreateParameter('RET',ftInteger,pdReturnValue, 0, 0);
Parameters.CreateParameter('No',ftString,pdInput, 11, No);
Parameters.CreateParameter('WD',ftString,pdInput, 8, 'temp');
Parameters.CreateParameter('Gb',ftInteger,pdInput, 0, FlatTabControl1.ActiveTab);
Open;
ret := Parameters.ParamValues['RET'];
Parameters.Clear;
case ret of
1 :
begin
PosGrid.ColCount := FieldCount;
if RecordCount = 0 then
begin
Close;
exit;
end;
PosGrid.RowCount := RecordCount + 1;
i := 1;
while not EOF do
begin
PosGrid.Cells[0,i] := FieldValues['BBB'];
if FieldValues['OrderGb'] = 1 then
PosGrid.Cells[1,i] := 'A'
else PosGrid.Cells[1,i] := 'B';
PosGrid.Cells[2,i] := FormatFloat('###,###,###',FieldValues['C']);
PosGrid.Cells[3,i] := FormatFloat('#,###.00',FieldValues['D']);
PosGrid.Cells[4,i] := FormatFloat('###,###,###,###',FieldValues['E']);
inc(i);
Next;
end;
end;
else
begin
showmessage (FieldValues['Msg']);
end;
end;
Close;
end;