none
Aktualizovatelný dotaz - počet vstupů do DB (spíš patří do předchozí skupiny)

    Dotaz

  • Dobrý den,

    mám problém s evidencí vstupů do DB.

    Stručný popis:

    Při startu mé aplikace chci z accessové db načíst informaci o posledním log in-u (tu zobrazit na úvodní stránce) a současně do stejné tabulky uložit novou větu a novém vstupu - aktualizovaný počet vstupů do db vložím do proměnné a použiji např. na další stránce.

    V podstatě jednoduché zadání a na lokálním IIS mi to funguje, ale jakmile to přenesu na server, tak mi program generuje chybu cca: "Operace musí být jako aktualizovatelný dotaz"

    Asi to musí být nějaká blbost, kterou přes provozní slepotu nevidím.

    Děkuji za Vaše tipy a rady.

     

    PS. Pro rychlejší orientaci jsem se z kodu snažil vymazat nadbytečné řádky.

     

     

     

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

     

    Dim objDR As OleDb.OleDbDataReader

    Dim objDR_N As OleDb.OleDbDataReader

    Dim objCMD As New OleDb.OleDbCommand()

    Dim objCMD_N As New OleDb.OleDbCommand()

    Dim objConn As New OleDb.OleDbConnection()

    Dim objConn_N As New OleDb.OleDbConnection()

    Dim strSQL As String

    Dim objDa_N As New OleDb.OleDbDataAdapter()

     

    ' Open the DB connection

    objConn.ConnectionString = Application("strConn")

    objConn.Open()

     

    ' Set the command connection

    objCMD.Connection = objConn

    objCMD.CommandText = "SELECT Volby_DB.zverejneno_kdy, Volby_DB.zverejneno_kym, Volby_DB.zverejneno_pozn, Volby_DB.zverejneno_pozn2 FROM Volby_DB;"

    objDR = objCMD.ExecuteReader()

     

     

    objDR.Read()

     

    If Not IsDBNull(objDR.Item("zverejneno_pozn")) Then

    LblPozn.Text = " (pozn. " & objDR.Item("zverejneno_pozn") & ")"

    End If

     

    objDR.Close()

    objConn.Close()

     

     

    objConn.Open()

    ' Set the command connection

    objCMD.Connection = objConn

    objCMD.CommandText = "SELECT Count(All_RM.ID_Usneseni) AS POCET, LAST(All_RM.CISLO) AS POSLEDNI FROM(All_RM) UNION ALL SELECT Count(All_ZM.ID_Usneseni_ZM) AS POCET, LAST(All_ZM.CISLO) AS POSLEDNI FROM All_ZM;"

    objDR = objCMD.ExecuteReader()

     

    objDR.Read()

     

    Session("Pocet_RM") = objDR.Item("pocet")

    Session("Last_RM") = objDR.Item("POSLEDNI")

     

    objDR.Close()

    objConn.Close()

     

     

    '

    'načtení počtu vstupů do DB

    objConn_N.ConnectionString = Application("strConn_N")

    objConn_N.Open()

    objCMD_N.Connection = objConn_N

    objCMD_N.CommandText = "SELECT Last(vstupy.ID_TASK) AS LastOfID, Last(vstupy.KDY) AS LastOfKDY, Last(vstupy.KDE) AS LastOfKDE FROM vstupy;"

    objDR_N = objCMD_N.ExecuteReader()

     

    objDR_N.Read()

    txt0.Text = "(poslední LOG do databáze: " & Format(objDR_N.Item("lastofkdy").ToString, "Long Date") & " - " & Format(objDR_N.Item("lastofkdy").ToString, "Long Time") & ")"

     

    objDR_N.Close()

    objConn_N.Close()

     

     

    'vložení nového přístupu

    objConn_N.ConnectionString = Application("strConn_N")

    objConn_N.Open()

    strSQL = "INSERT INTO VSTUPY (KDY,KDE,KDE_SESSION,KTERA_SESSION,USER_ID) VALUES('" & Now().ToString & "','start.aspx','" & Session.SessionID.ToString & "','" & Session("adresar").ToString & "','" & User.Identity.Name.ToString() & "');"

    objDa_N.InsertCommand() = New OleDb.OleDbCommand(strSQL, objConn_N)

    objDa_N.InsertCommand.ExecuteNonQuery()

    objDa_N.SelectCommand() = New OleDb.OleDbCommand("Select @@IDENTITY", objConn_N)

     

    Application("txtPocetVstupu") = objDa_N.SelectCommand.ExecuteScalar().ToString

     

    objConn_N.Close()

     

     

    End Sub

    31. října 2008 20:43

Odpovědi

Všechny reakce