Registriert seit: 9. Jun 2003
390 Beiträge
Delphi 7 Professional
|
Transaction?
6. Jul 2005, 13:05
Datenbank: MSSQl • Zugriff über: OleDb
Hallo
meine SP in der DB sieht so aus
Delphi-Quellcode:
CREATE PROCEDURE GFC_M_INSERT
@GFC_M_ID int output,
@GFC_M_NAME nvarchar(100),
@GFC_M_AKTIV bit,
@GFC_M_OUT bit,
@GFC_M_USER_NAME nvarchar(50),
@GFC_M_USER_TXT ntext,
@GFC_M_USER_DATE smalldatetime
AS
SET NOCOUNT ON
INSERT INTO [GFC_Medien]
(
[GFC_M_NAME],
[GFC_M_AKTIV],
[GFC_M_OUT],
[GFC_M_USER_NAME],
[GFC_M_USER_TXT],
[GFC_M_USER_DATE]
)
VALUES
(
@GFC_M_NAME,
@GFC_M_AKTIV,
@GFC_M_OUT,
@GFC_M_USER_NAME,
@GFC_M_USER_TXT,
@GFC_M_USER_DATE
)
SET @GFC_M_ID = @@IDENTITY
GO
meine Insert anweisung in Delphi
Delphi-Quellcode:
//Insert
//Insert Command
ins_cmd := OleDbCommand.Create();
ins_cmd.CommandType := CommandType.StoredProcedure;
ins_cmd.CommandText := 'GFC_M_INSERT';
ins_cmd.Connection := gf_conn;
ins_cmd.Parameters.Clear;
ins_cmd.Parameters.Add('@GFC_M_NAME', OleDbType.VarWChar, 100, 'GFC_M_NAME');
ins_cmd.Parameters.Add('@GFC_M_AKTIV', OleDbType.Boolean, 1, 'GFC_M_AKTIV');
ins_cmd.Parameters.Add('@GFC_M_OUT', OleDbType.Boolean, 1, 'GFC_M_OUT');
ins_cmd.Parameters.Add('@GFC_M_USER_NAME', OleDbType.VarWChar, 50, 'GFC_M_USER_NAME');
ins_cmd.Parameters.Add('@GFC_M_USER_TXT', OleDbType.LongVarWChar, 16, 'GFC_M_USER_TXT');
ins_cmd.Parameters.Add('@GFC_M_USER_DATE', OleDbType.DBTimeStamp, 4, 'GFC_M_USER_DATE');
ins_par := ins_cmd.Parameters.Add('@Identity', OleDbType.Integer, 4, 'ID');
ins_par.Direction := System.Data.ParameterDirection.Output;
ins_par.SourceColumn := 'ID';
ins_par.SourceVersion := DataRowVersion.Current;
wie kann ich jetzt sicher sein das meine Daten auch eingetragen werden (Stromausfall)
mit Transaction? aber wie und WO?
Wann setze ich ein Commit und wann ein Rollback?
Homer
|
|
Zitat
|