- Imports System.IO
- Imports System.Text
- Imports System.Data.SqlServerCe
- Module Data
- #Region "Declarations"
- Public CheminCourant As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase)
- Public Const ListeSeparation = ";"
- #End Region
- Public Sub ShowErrors(ByVal e As SqlCeException)
- Dim errorCollection As SqlCeErrorCollection = e.Errors
-
- Dim bld As New StringBuilder
- Dim inner As Exception = e.InnerException
-
- If Not inner Is Nothing Then
- MessageBox.Show(("Inner Exception: " & inner.ToString()))
- End If
-
- Dim err As SqlCeError
-
- ' Enumerate each error to a message box.
- For Each err In errorCollection
- bld.Append((ControlChars.Cr & " Error Code: " & err.HResult.ToString("X")))
- bld.Append((ControlChars.Cr & " Message : " & err.Message))
- bld.Append((ControlChars.Cr & " Minor Err.: " & err.NativeError))
- bld.Append((ControlChars.Cr & " Source : " & err.Source))
-
- ' Retrieve the error parameter numbers for each error.
- Dim numPar As Integer
- For Each numPar In err.NumericErrorParameters
- If 0 <> numPar Then
- bld.Append((ControlChars.Cr & " Num. Par. : " & numPar))
- End If
- Next numPar
-
- ' Retrieve the error parameters for each error.
- Dim errPar As String
- For Each errPar In err.ErrorParameters
- If [String].Empty <> errPar Then
- bld.Append((ControlChars.Cr & " Err. Par. : " & errPar))
- End If
- Next errPar
-
- MessageBox.Show(bld.ToString())
- bld.Remove(0, bld.Length)
- Next err
- End Sub
- Public Sub LireRequete()
- Dim Sr As New StreamReader(CheminCourant & "\Requete.txt")
- Dim StrInput, NomFichier, Requete, NomBase, Nombre As String
- Try
- NomBase = StrInput
- Requete = Sr.ReadLine
- Nombre = Sr.ReadLine
- NomFichier = Sr.ReadLine
- MsgBox("Requete " & Requete & "(" & CStr(Nombre) & ") sur " & NomBase & " pour " & NomFichier)
- ExtractData(NomBase, Nombre, Requete, NomFichier)
- Sr.Close()
- Catch ex As Exception
- ShowErrors(ex)
- End Try
- End Sub
- Public Sub ExtractData(ByVal NomBase As String, ByVal Nombre As String, ByVal Requete As String, ByVal NomFichier As String)
- Dim maconnexion As SqlCeConnection = Nothing
- Dim Detail() As String
- Dim Sw As New StreamWriter(CheminCourant & NomFichier, True)
- Dim I, Compteur, Etat As Integer
- Dim Tampon As String
- Detail = Nombre.Split(ListeSeparation)
- I = 0
- Try
- maconnexion = New SqlCeConnection(("Data Source=" & CheminCourant & NomBase))
- maconnexion.Open()
- Dim mycmd As SqlCeCommand
- Dim MonResultat As SqlCeDataReader
- mycmd = maconnexion.CreateCommand
- mycmd.CommandText = Requete
- MonResultat = mycmd.ExecuteReader
- While MonResultat.Read()
- If Detail(1) = "str" Then Tampon = MonResultat.GetString(I)
- If Detail(1) = "int" Then Tampon = CStr(MonResultat.GetInt16(I))
- If CInt(Detail(0)) > 0 Then
- For I = 1 To CInt(Detail(0))
- Tampon = Tampon & ListeSeparation
- If Detail(I + 1) = "str" Then Tampon = Tampon & MonResultat.GetString(I)
- If Detail(I + 1) = "int" Then Tampon = Tampon & CStr(MonResultat.GetInt16(I))
- Next
- End If
- Sw.WriteLine(Tampon)
- Tampon = ""
- I = 0
- Compteur += 1
- End While
- Sw.Flush()
- Sw.Close()
- maconnexion.Dispose()
- maconnexion.Close()
- MsgBox(Compteur & " enregistrements exportés dans " & NomFichier)
- Catch ex As Exception
- MsgBox(ex.Message & "-" & CStr(Compteur), MsgBoxStyle.Exclamation)
- ShowErrors(ex)
- End Try
- End Sub
- End Module
Imports System.IO
Imports System.Text
Imports System.Data.SqlServerCe
Module Data
#Region "Declarations"
Public CheminCourant As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase)
Public Const ListeSeparation = ";"
#End Region
Public Sub ShowErrors(ByVal e As SqlCeException)
Dim errorCollection As SqlCeErrorCollection = e.Errors
Dim bld As New StringBuilder
Dim inner As Exception = e.InnerException
If Not inner Is Nothing Then
MessageBox.Show(("Inner Exception: " & inner.ToString()))
End If
Dim err As SqlCeError
' Enumerate each error to a message box.
For Each err In errorCollection
bld.Append((ControlChars.Cr & " Error Code: " & err.HResult.ToString("X")))
bld.Append((ControlChars.Cr & " Message : " & err.Message))
bld.Append((ControlChars.Cr & " Minor Err.: " & err.NativeError))
bld.Append((ControlChars.Cr & " Source : " & err.Source))
' Retrieve the error parameter numbers for each error.
Dim numPar As Integer
For Each numPar In err.NumericErrorParameters
If 0 <> numPar Then
bld.Append((ControlChars.Cr & " Num. Par. : " & numPar))
End If
Next numPar
' Retrieve the error parameters for each error.
Dim errPar As String
For Each errPar In err.ErrorParameters
If [String].Empty <> errPar Then
bld.Append((ControlChars.Cr & " Err. Par. : " & errPar))
End If
Next errPar
MessageBox.Show(bld.ToString())
bld.Remove(0, bld.Length)
Next err
End Sub
Public Sub LireRequete()
Dim Sr As New StreamReader(CheminCourant & "\Requete.txt")
Dim StrInput, NomFichier, Requete, NomBase, Nombre As String
Try
NomBase = StrInput
Requete = Sr.ReadLine
Nombre = Sr.ReadLine
NomFichier = Sr.ReadLine
MsgBox("Requete " & Requete & "(" & CStr(Nombre) & ") sur " & NomBase & " pour " & NomFichier)
ExtractData(NomBase, Nombre, Requete, NomFichier)
Sr.Close()
Catch ex As Exception
ShowErrors(ex)
End Try
End Sub
Public Sub ExtractData(ByVal NomBase As String, ByVal Nombre As String, ByVal Requete As String, ByVal NomFichier As String)
Dim maconnexion As SqlCeConnection = Nothing
Dim Detail() As String
Dim Sw As New StreamWriter(CheminCourant & NomFichier, True)
Dim I, Compteur, Etat As Integer
Dim Tampon As String
Detail = Nombre.Split(ListeSeparation)
I = 0
Try
maconnexion = New SqlCeConnection(("Data Source=" & CheminCourant & NomBase))
maconnexion.Open()
Dim mycmd As SqlCeCommand
Dim MonResultat As SqlCeDataReader
mycmd = maconnexion.CreateCommand
mycmd.CommandText = Requete
MonResultat = mycmd.ExecuteReader
While MonResultat.Read()
If Detail(1) = "str" Then Tampon = MonResultat.GetString(I)
If Detail(1) = "int" Then Tampon = CStr(MonResultat.GetInt16(I))
If CInt(Detail(0)) > 0 Then
For I = 1 To CInt(Detail(0))
Tampon = Tampon & ListeSeparation
If Detail(I + 1) = "str" Then Tampon = Tampon & MonResultat.GetString(I)
If Detail(I + 1) = "int" Then Tampon = Tampon & CStr(MonResultat.GetInt16(I))
Next
End If
Sw.WriteLine(Tampon)
Tampon = ""
I = 0
Compteur += 1
End While
Sw.Flush()
Sw.Close()
maconnexion.Dispose()
maconnexion.Close()
MsgBox(Compteur & " enregistrements exportés dans " & NomFichier)
Catch ex As Exception
MsgBox(ex.Message & "-" & CStr(Compteur), MsgBoxStyle.Exclamation)
ShowErrors(ex)
End Try
End Sub
End Module