我要投稿
  • 您当前的位置:365bet官方 -> 技术教程 -> 软件开发教程 -> Java教程 -> 教程内容
  • [ 收藏本页教程 ]
  • Visual Basic数据库开发疑难问题解Java教程

    教程作者:佚名    教程来源:不详   教程栏目:Java教程    收藏本页
      问:如何显示格式为03-3-13的日期?

      解决的方法:

    1 
    Cmd.CommandText = "select * from 支出 where 日期=03-3-13" 中 03-3-13=-13。
    日期实际上是Double型数字。0 是 1899-12-30,-13 是 1899-12-17。你当然没有这样日期的记录,所以只有大于才行。
    2
    Cmd.CommandText = "select * from 支出 where 日期=#03-3-13#"
    凡是没有明示,文字型日期是按美国习惯解释的,#03-3-13# 是 0013-03-03。

    或者使用长日期格式:
    Cmd.CommandText = "select * from 支出 where 日期=#2003-3-13#"
    用格式化函数:
    Cmd.CommandText = "select * from 支出 where 日期=#" & format(mydate,"yyyy-mm-dd") & "#"

      问: 如何判断DNS是否存在?怎样才能列举出所有的DNS?

      解决方法:

      1、通过利用ODBC API中的SQLDataSource函数可以取得ODBC API中数据源的列表。 判断DNS是否存在:
     
      2、使用API函数Private Declare Function SQLDataSources Lib "ODBC32.DLL" (ByVal henv As Long, ByVal fDirection As Integer, ByVal szDSN As String, ByVal cbDSNMax As Integer, pcbDSN As Integer, ByVal szDescription As String, ByVal cbDescriptionMax As Integer, pcbDescription As Integer) As Integer Private Declare Function SQLAllocEnv Lib "ODBC32.DLL" (ByRef env As Long) As Long 列举出所有DNS。
      问:处理文本文件是导入数据库还是直接读写文件呢?

      解决方法:

    Set main = bumony.OpenRecordset("main")
    Open App.Path & "\sources\" & Text1.Text & "\´úÀíÒµÎñ" & Text1.Text & ".txt" For Input As #1
    Do While Not EOF(1)
    Line Input #1, str1
    With main
    .AddNew
    !code = Mid(str1, 1, 5)
    !date = Text1.Text
    If Mid(str1, 1, 5) = "21310" Or Mid(str1, 1, 5) = "21311" Or Mid(str1, 1, 5) = "21410" Or Mid(str1, 1, 5) = "21411" Then
    !Money = Trim(Mid(str1, 7, 10))
    Else
    !Money = Trim(Mid(str1, 7, 10)) & "0000"
    End If
    !whao = "1102"
    !ywhao = "1102"
    .Update
    End With
    Loop
    Close #1
    main.Close
      问:调用SQL存储后有参数返回,应该怎么赋值?

      解决方法:


    Dim ADOCmd As New ADODB.Command
    Dim ADOPrm As New ADODB.Parameter
    Dim ADORs As ADODB.Recordset

    ....
    Set ADOCmd.ActiveConnection = ADOCon
    With ADOCmd
    .CommandType = adCmdStoredProc
    .CommandText = "ADOTestRPE"
    End With

    sParmName = "Output"
    Set ADOPrm = ADOCmd.CreateParameter(sParmName, adInteger, adParamOutput)
    ADOCmd.Parameters.Append ADOPrm
    ADOCmd.Parameters(sParmName).Value = 999

    Set ADORs = ADOCmd.Execute
    .....

    Debug.Print "Output: " & ADOCmd.Parameters("Output").Value

      问: SQL Server 2000中如何存取图片信息?
      
      解决方法:


    新建一个工程,添加 ado 控件,2个 Command ,1个 Picture,1个 Image

    Dim Chunk() As Byte
    Dim lngLengh As Long
    Dim intChunks As Integer
    Dim intFragment As Integer
    Const ChunkSize = 1000
    Const lngDataFile = 1

    Private Sub cmdBrowse_Click()

    On Error Resume Next
    With cmdlFilePath
    .Filter = "JPG Files|*.JPG|Bitmaps|*.BMP"
    .ShowOpen
    txtFilePath.Text = .filename
    End With
    End Sub

    Private Sub Savepic()

    Open "c:\colordraw0094_m.jpg" For Binary Access Read As lngDataFile
    lngLengh = LOF(lngDataFile)
    If lngLengh = 0 Then Close lngDatafile: Exit Sub
    intChunks = lngLengh \ ChunkSize
    intFragment = lngLengh Mod ChunkSize

    OpenData 打开数据库
    Dim i As Integer
    Dim rs As New ADODB.Recordset
    Dim strQ As String

    If rs.State = adStateOpen Then rs.Close

    strQ = "Select * From [mydata]"
    rs.Open strQ, conn, adOpenStatic, adLockOptimistic

    On Error Resume Next

    rs.AddNew

    ReDim Chunk(intFragment)
    Get lngDataFile, , Chunk()
    rs.Fields("rs_photo1").AppendChunk Chunk()
    ReDim Chunk(ChunkSize)

    For i = 1 To intChunks
    Get lngDataFile, , Chunk()
    rs.Fields("rs_photo1").AppendChunk Chunk()
    Next i

    rs.Update
    rs.Close
    Close lngDataFile
    Call ShowPic

    End Sub

    Public Sub ShowPic()

    OpenData 打开数据库
    Dim i As Integer
    Dim rs As New ADODB.Recordset
    Dim strQ, filename As String
    If rs.State = adStateOpen Then rs.Close

    strQ = "Select * From [mydata]"
    rs.Open strQ, conn, adOpenStatic, adLockOptimistic
    If rs.EOF <> True Then
    rs.MoveLast
    Else
    Exit Sub
    End If
    On Error Resume Next
    Open "pictemp" For Binary Access Write As lngDataFile
    lngLengh = rs.Fields("rs_photo1").ActualSize
    intChunks = lngLengh \ ChunkSize
    intFragment = lngLengh Mod ChunkSize
    ReDim Chunk(intFragment)
    Chunk() = rs.Fields("rs_photo1").GetChunk(intFragment)
    Put lngDataFile, , Chunk()
    For i = 1 To intChunks
    ReDim Buffer(ChunkSize)
    Chunk() = rs.Fields("rs_photo1").GetChunk(ChunkSize)
    Put lngDataFile, , Chunk()
    Next i
    Close lngDataFile
    filename = "pictemp"
    Picture1.Picture = LoadPicture(filename)
    Image1.Stretch = True
    Image1.Picture = Picture1.Picture
    Kill filename

    End Sub

    Private Sub Command1_Click()

    Savepic

    End Sub

    Private Sub Command2_Click()

    ShowPic

    End Sub

    上面写的是acess的代码!楼主可以改一下连接数据库的设置代码用于sql server!



    我要投稿   -   广告合作   -   关于本站   -   友情连接   -   网站地图   -   联系我们   -   版权声明   -   设为首页   -   加入收藏   -   网站留言
    Copyright © 2009 - 20012 www.www.ct131.com All Rights Reserved.365bet官方 版权所有