In principal, despre .NET, VB6. C#,VB.NET, ASP.NET Apoi despre programare si multe alte chestii ... de programare.

Subscribe RSS   Mini tools List

miercuri, aprilie 18, 2007

conexiune deschisa si Excel
Va rog sa folositi acest URL NOU de la
http://serviciipeweb.ro/iafblog/

Am avut de facut o aplicatie care sa tipareasca automat niste rezultate care provin de la o niste rinduri de Excel, trecute printr-o functie dintr=o BD SQL Server.
Normal  ca am facut o functie in VBA care sa faca asta:
Public Function valoarescan(val)
    If (Len(val) = 0) Then Exit Function
    Dim t As Range
    Set t = val
   
   Dim rs As ADODB.Recordset
   Dim cn As ADODB.Connection
   Set cn = New ADODB.Connection
   cn.ConnectionString = "Driver={SQL Server};Server=(local);Database=....;Trusted_Connection=Yes;"
   cn.Open
    Set rs = cn.Execute("SELECT [user].[functie] ('" & t.Text & "')")
   
    valoarescan = rs(0).Value
    cn.Close
    'MsgBox Len(valoarescan)
   
   
End Function
Ceea ce am observat este ca dura mult prea mult(2 minute) pentru 31 de rinduri, asa incit ceea ce am facut este sa nu mai respect BestPractices pentru o conexiune, ci sa folosesc aceeasi conexiune
Dim cn As ADODB.Connection
Public Function valoarescan(val)
    If (Len(val) = 0) Then Exit Function
    Dim t As Range
    Set t = val
   
   Dim rs As ADODB.Recordset
   Dim cn As ADODB.Connection
   If (cn Is Nothing) Then
   cn.ConnectionString = "Driver={SQL Server};Server=(local);Database=....;Trusted_Connection=Yes;"
   cn.Open
    End If
    Set rs = cn.Execute("SELECT [user].[functie] ('" & t.Text & "')")
   
    valoarescan = rs(0).Value

    'MsgBox Len(valoarescan)
   
   
End Function


Rezultat: merge in aprox 2 secunde !
Drawback: Conexiunea nu se inchide... - pentru ca nu stiu care e ultima oara cind se apeleaza...

As putea sa fac o clasa care sa refoloseasca conexiunea - si pe Terminate sa o distruga... dar am fost bucuros ca mi-a dat...

Concluzia : Citeodata e bine sa nu respecti bestpractices!

Post page: http://serviciipeweb.ro/iafblog/2007/04/18/conexiune+Deschisa+Si+Excel.aspx

Weblog post by 'admin' on 'conexiune deschisa si Excel'

Categories:programare

 
Acest blog s-a mutat la http://www.serviciipeweb.ro/iafblog/