J'ajoute aussi un groupe C#, car ce n'est pas un problème VB mais ExecuteNonQuery donne un timeout. comment augmenter le temps mort?ODBC - ExecuteNonQuery donne timeout -> où l'augmenter?
errormessage exact: erreur [HYT00] [Microsoft] [ODBC SQL Server Driver] Délai d'attente expiré
nous avons système CMS et que la CMS j'ai créé un IFRAME qui appelle ce code ASPX + VB, qui est dans le dossier physicall différent et il a géré Pipeline Classic. Lorsque je l'exécute dans l'ancienne application, cela fonctionne très bien. Mais j'ai copié les pages sur le serveur de news et créé un nouveau pool d'applications/site Web. Appelez OldASPPAGES. J'obtiens le délai d'attente ODBC sur la fonction 'ExecuteNonQuery()' ci-dessous.
Parfois, je fonctionne, mais 9 des 10 cas je gettimeout. J'ai vérifié les enregistrements et il y a 247 enregistrements. Mais ci-dessous, vous voyez qu'il y a 2 instructions sql composées pour chaque boucle. (mise à jour et insertion) ... 2 x 247 enregistrements = env. 500 enregistrements.
Mais depuis la déclaration sql est concantenated si 1 appel de ExecuteNonQuery, executue fait faire 500 instructions SQL ....
Je sais que cela ORDURES, inacceptable .... Mais je hérité donc pour le moment je ne peut pas réécrire cela.
Au point:
Voici les statemenst d'origine: Je viens d'ajouter: conn.ConnectionTimeout = 240 Comme vous pouvez le voir, j'ai ajouté 240 secondes, mais je reçois toujours les délais d'attente après env. 30 secs ... donc ce n'est pas le bon endroit ....
question: - Pourquoi cette instruction fonctionne dans l'ancien environnement ASP (sans problème) et pas dans cet environnement dans un IFRAME ....
- Je règle le délai d'attente = 240 mais j'obtiens toujours le délai après 30 secondes. Où définissez-vous le délai d'expiration plus?
Quelqu'un peut-il nous conseiller?
grâce
Private Function data30bis_save(ByVal data_30bis_list, ByVal user_id)
lblMessage.Text = "data30bis_save"
Dim conn As OdbcConnection, cmd As OdbcCommand, ra As Integer, sql As String, data_30bis As Attest30bis.Data30bisCobonet
' important: always purge the old situation before loading the new one !
data30bis_cleanup(user_id)
conn = New OdbcConnection("dsn=chris2;uid=xxx;pwd=ssddddd;")
conn.ConnectionTimeout = 240
conn.Open()
sql = ""
lblMessage.Text = "st"
For Each data_30bis In data_30bis_list
sql = sql & "update usr_codes set "
If Len(data_30bis.analyseDate) > 0 Then
sql = sql & "a30b_analysedate=convert(datetime,'" & data_30bis.analyseDate.ToString & "',103)"
Else
sql = sql & "a30b_analysedate=getdate()"
End If
sql = sql & ", a30b_errorcode=" & data_30bis.errorCode
sql = sql & ", a30b_inputcompanyidvalid=" & Abs(CInt(data_30bis.inputCompanyIdValid))
sql = sql & ", a30b_inputnossvalid=" & Abs(CInt(data_30bis.inputNossValid))
sql = sql & ", a30b_noss=" & data_30bis.noss
sql = sql & ", a30b_reservecontractorconcept=" & Abs(CInt(data_30bis.reserveContractorConcept))
If Len(data_30bis.reserveContractorDate) > 0 Then
sql = sql & ", a30b_reservecontractordate=convert(datetime,'" & data_30bis.reserveContractorDate.ToString & "',103)"
Else
sql = sql & ", a30b_reservecontractordate=getdate()"
End If
sql = sql & ", a30b_reservemakingconcept=" & Abs(CInt(data_30bis.reserveMakingConcept))
If Len(data_30bis.reserveMakingDate) > 0 Then
sql = sql & ", a30b_reservemakingdate=convert(datetime,'" & data_30bis.reserveMakingDate.ToString & "',103)"
Else
sql = sql & ", a30b_reservemakingdate=getdate()"
End If
sql = sql & ", a30b_date_modified=getdate()"
sql = sql & " where user_id='" & user_id & "' and no_tva='" & data_30bis.companyId & "' and cd_pays_tva = 'BE'"
sql = sql & vbCrLf
' 2nd SQL
sql = sql & "insert a30b_controles (dt_ctrl, user_id, cd_pays_tva, no_tva, no_societe, a30b_analysedate, a30b_errorcode, a30b_inputcompanyidvalid, a30b_inputnossvalid, "
sql = sql & "a30b_noss, a30b_reservecontractorconcept, a30b_reservecontractordate, a30b_reservemakingconcept, a30b_reservemakingdate, a30b_companyId) "
sql = sql & "values (getdate(),'" & user_id & "','FR','massif',''," & "convert(datetime,'" & data_30bis.analyseDate.ToString & "',103)"
sql = sql & "," & data_30bis.errorCode & "," & Abs(CInt(data_30bis.inputCompanyIdValid)) & "," & Abs(CInt(data_30bis.inputNossValid)) & "," & data_30bis.noss & "," & Abs(CInt(data_30bis.reserveContractorConcept))
sql = sql & ",convert(datetime,'" & data_30bis.reserveContractorDate.ToString & "',103)," & Abs(CInt(data_30bis.reserveMakingConcept))
sql = sql & ",convert(datetime,'" & data_30bis.reserveMakingDate.ToString & "',103)," & data_30bis.companyId & ")"
sql = sql & vbCrLf
Next
lblMessage.Text = sql
cmd = New OdbcCommand(sql, conn)
ra = cmd.ExecuteNonQuery()
lblMessage.Text = "ssssst"
conn.Close()
cmd = Nothing
conn = Nothing
lblMessage.Text = "ssssat"
Return ra
End Function
Salut Frederik, c'est génial ... Je mettais le Timeout sur l'objet connexion. il semble que je doive le mettre sur l'objet de commande ... Maintenant ça marche super! merci .... btw: En effet ce truc doit être réécrit. Merci encore – ethem