sql data yazma
merhaba script ile veri tabanına daya yazmak istiyorum ama başarılı olamadım aşağıdaki kod ile yapmaya çaliştım
Dim SQL_cn As New SqlConnection()
SQL_cn.ConnectionString = “Server=(local)\WINTR\WinTr;uid=sa;pwd=12341234;database=dataproje”
SQL_cn.Open()
Dim SQL_Ins As String
‘Set Datetime Format
SQL_Ins = “SET DATEFORMAT dmy”
Dim SQL_date As SqlCommand = New SqlCommand(SQL_Ins, SQL_cn)
Dim SQL_cmdnon As SqlCommand = New SqlCommand(SQL_Ins, SQL_cn)
if tiptag = True Then
tip = “Sağ”
Else
tip= “Sol”
End If
sonuc=”OK”
‘Adding data
SQL_Ins = “INSERT INTO Table1(LastValue,DateTime,NotSet,tip,sonuc,tork1deger,tork2deger)”
SQL_Ins = SQL_Ins & ” VALUES(‘” & Row_Count & “‘,'” & Now & “‘,’0’,'” & tip & “‘,'” & sonuc & “‘,'” & Float_To_String(tork1)& “‘,'” & Float_To_String(tork2) & “‘)”
SQL_cmdnon = New SqlCommand(SQL_Ins, SQL_cn)
SQL_cmdnon.ExecuteNonQuery()
‘Close Database connection
SQL_cn.Close()
kontrol = True
Catch ex As Exception
‘ messagebox.show(ex.tostring,ex.message)
‘ ScriptError = ex.message
End Try
‘——- Script End Line ——-
End Sub
Function Float_To_String(Byval Sayi as Single)
return Sayi.ToString(“G”, CultureInfo.CreateSpecificCulture(“en-US”))
End Function
End Class
End Namespace
Öncelikle script ile veri tabanına veri yazmak için orta seviyede visual basic bilmeniz gerekir.
Veri tabanına script ile veri yazmak yerine Trigger methodu ile yazabilirsiniz. Trigger tag’ının her tetiklemesinde seçilen Tag’lar database’e kaydedilir.
Script ile veri tabanına veri yazacaksanız, scada control panelinde, SQL server sekmesinde tanımlı database’e yazamazsınız. WinTr scada tarafından kullanılan bu database’e script ile satır eklediğinizde sonraki kayıtları scada yapamayacaktır.
Row_Count değişkenin database’de kayıtlı tüm LastValue değerlerinden farklı bir değer olmalıdır. Script içersinde bu değişkene değer yazan bir işlem olmadığı için zaten çalışmaz.
Sonuç: Anladığım kadarı ile bu scripti belli durumlarda çalıştırarak database’e kayıt eklemek istiyorsunuz. Bu işlem için Trigger ile kayıt methodunu kullanmalısınız. Tag taplosu üzerinde kaydını yapmak istediğiniz değişkenlerin sağında bulunan historical butonuna bastığınızda trigger seçeneğini seçin. Kaydet sinyali olarak bir tag seçin. Trigger tag’ı aynı anda kaydedilmesini istediğiniz tüm taglar için aynı olmalıdır. Database’e farklı methodlar ile başka kayıtlar yapıyorsanız, Farklı tablolar kullanabilirsiniz. Daha sonraki aşamada rapor oluşturmak için kolaylık olacaktır. Farklı tablo oluşturmak için control panelinde SQL server sekmesinde veya historical butonu ile açılan menüyü kullanabilirsiniz.
Was this answer helpful?
LikeDislikemerhaba trigger kayıt 2 kez kayıt yapıyor kullanamıyorum ben baska bır win tr ile proje oluşturdum ve dataproje adı ile veritabanını oluşturdum.Sonra başka bir wintr projesi ile sayfa refresh ile dataproje veritabanına yazmaya çalışıyordum başaramadım.Şuanki durum itibariyle hatalarımı buldum yazabiliyorum fakat sizinde belirttiğiniz gibi row count olayını çözemedim yoksa lastvalue degerine manuel değer yazdığımda sorunsuz calısıyor sizden ricam row count olayını nasıl çözebilirim sql taglar ile olmuyor mu ? işin sonuna geldim tıkandım teşekkürler
Was this answer helpful?
LikeDislikeAn itibariyle kayıt olayında çözdüm ama biraz uzun bir yol oldu tablodaki son kaydı bulup 1 artırıp oyle kaydediyorum kısa bir yolu vardır eminim
Was this answer helpful?
LikeDislikeEn kısa yolunu bulmuşsunuz zaten.
Trigger yükselen ve düşen kenarda kayıt alır. Bu nedenle iki defa kayıt alıyor. Her kayıt almak istediğinizde bir ise sıfır sıfır ise bir yapmalısınız. Siz kayıt için bir yapıp sonra sıfırlıyorsunuz her halde.
Was this answer helpful?
LikeDislikeplc de kaydet tagım var her parça sonunda 1 yapıp trigger olarak seçtim ilk parçada aktif oluyr kayıt yapıyor ıkıncı parcayı bklerken pasıf yapıyorm o arada yıne kayıt alıyor bir parçada ıkı kayıt olusuyor bndan dolayı kullanamadım.
Was this answer helpful?
LikeDislikeBöyle yaptığınızı tahmin ettim zaten. ilk parça geldiğinde bir yapın ikinci parça geldiğinde sıfır yapın. Sorununuz çözülecektir.
Was this answer helpful?
LikeDislike