Local lnHandle, lcDatabaseName
lcDatabaseName = "myTestData"
lnHandle=SQLStringConnect('DRIVER=SQL Server;SERVER=cetin\cetin;Trusted_connection=Yes')
If SQLExec(lnHandle, "create database "+lcDatabaseName) < 0
Do errHand
Return
Endif
mySQLExec(lnHandle, "use "+lcDatabaseName)
mySQLExec(lnHandle, ;
"create table anadosya"+;
" (malid int not null, grupid int not null, grupad varchar(10),"+;
" inserttime datetime default getdate(),insertedby nvarchar(256) default suser_sname(),"+;
" updatetime datetime null, updatedby nvarchar(256) null,"+;
" deletetime datetime null, deletedby nvarchar(256) null)")
mySQLExec(lnHandle, ;
"create table grupdosya"+;
" (grupId int not null IDENTITY PRIMARY KEY,"+;
" grupad varchar(30))")
mySQLExec(lnHandle, ;
"CREATE TABLE MalDosya"+;
" (malid int NOT NULL IDENTITY PRIMARY KEY,"+;
" Mal_Ad varchar(30),"+;
" GrupID int NOT NULL References GrupDosya(GrupId))")
mySQLExec(lnHandle, ;
"CREATE trigger MalDosya_Insert On MalDosya For Insert as"+;
" insert into AnaDosya "+;
" select mal.identitycol as MalId, mal.grupId as GrupId, grup.GrupAd as GrupAd,"+;
" getdate(),SUSER_SNAME(),null,null,null,null"+;
" from maldosya mal "+;
" inner join grupdosya grup"+;
" on mal.grupid = grup.grupid"+;
" where mal.identitycol = IDENT_CURRENT('MalDosya')")
mySQLExec(lnHandle, ;
"CREATE trigger MalDosya_Update On MalDosya For Update as"+;
" update AnaDosya "+;
" set UpdateTime = getdate(), UpdatedBy = SUSER_SNAME()"+;
" where exists (select * from inserted where Anadosya.MalId = inserted.MalId)")
mySQLExec(lnHandle, ;
"CREATE trigger MalDosya_Delete On MalDosya For Delete as"+;
" update AnaDosya "+;
" set DeleteTime = getdate(), DeletedBy = SUSER_SNAME()"+;
" where exists (select * from deleted where Anadosya.MalId = deleted.MalId)")
* Tablo ve trigger hazir
* Grup tanimla
For jx=1 to 5
m.lcGrupAd = 'Grup'+trans(jx)
mySQLExec(lnHandle, "insert into GrupDosya (grupad) values (?lcGrupAd)") && Grup
Endfor
* Mal insert
mySQLExec(lnHandle, "select * from GrupDosya","crsGrup")
Select crsGrup
Scan
m.luGrupID = crsGrup.GrupId
For ix=1 to 3
m.lcMalAd = trim(crsGrup.GrupAd)+'_Mal'+trans(ix)
mySQLExec(lnHandle, "insert into MalDosya (Mal_Ad, GrupId) values (?lcMalAd, ?luGrupId)")
Endfor
Endscan
* Insert sonrasi ne insert edildigine bak
CheckTables(lnHandle,'Insert sonrasi')
mySQLExec(lnHandle, "update MalDosya set GrupId = 3 where GrupId = 2")
* Guncelleme sonrasi
CheckTables(lnHandle,'Guncelleme sonrasi')
mySQLExec(lnHandle, "delete from MalDosya where GrupId = 3")
* Delete sonrasi
CheckTables(lnHandle,'Delete sonrasi')
SQLDisconnect(lnHandle)
Function mySQLExec
Lparameters tnHandle, tcSQL, tcCursorName
tcCursorName = iif(empty(tcCursorName),'',tcCursorName)
If SQLExec(tnHandle,tcSQL,tcCursorName) < 0
Do errHand with tcSQL
Endif
Function errHand
Lparameters tcSQL
lcError=tcSQL+chr(13)
Aerror(arrCheck)
For ix=1 to 7
lcError = lcError+trans( arrCheck [ix])+ chr(13)
Endfor
Messagebox(lcError,0,'Error def.')
Function CheckTables
Lparameters tnHandle,tcTitle
mySQLExec(tnHandle, ;
"select * from GrupDosya; select * from MalDosya ; select * from AnaDosya","crsResult")
Select crsResult
Browse title 'Gruplar - '+tcTitle
Select crsResult1
Browse title 'Mallar - '+tcTitle
Select crsResult2
Browse title 'Ana - '+tcTitle