2022年Visual Basic数据库开发疑难问题解Java教程.docx
2022年Visual Basic数据库开发疑难问题解Java教程问:如何显示格式为03-3-13的日期?解决的方法:1Cmd.CommandText = "select * from 支出 where 日期=03-3-13" 中 03-3-13=-13。日期事实上是Double型数字。0 是 1899-12-30,-13 是 1899-12-17。你当然没有这样日期的记录,所以只有大于才行。2Cmd.CommandText = "select * from 支出 where 日期=#03-3-13#"凡是没有明示,文字型日期是按美国习惯说明的,#03-3-13# 是 0013-03-03。或者运用长日期格式:Cmd.CommandText = "select * from 支出 where 日期=#2022-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 #1Do While Not EOF(1)Line Input #1, str1With main.AddNew!code = Mid(str1, 1, 5)!date = Text1.TextIf 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".UpdateEnd WithLoopClose #1main.Close问:调用SQL存储后有参数返回,应当怎么赋值?解决方法:Dim ADOCmd As New ADODB.CommandDim ADOPrm As New ADODB.ParameterDim ADORs As ADODB.Recordset.Set ADOCmd.ActiveConnection = ADOConWith ADOCmd.CommandType = adCmdStoredProc.CommandText = "ADOTestRPE"End WithsParmName = "Output"Set ADOPrm = ADOCmd.CreateParameter(sParmName, adInteger, adParamOutput)ADOCmd.Parameters.Append ADOPrmADOCmd.Parameters(sParmName).Value = 999Set ADORs = ADOCmd.Execute.Debug.Print "Output: " & ADOCmd.Parameters("Output").Value问: SQL Server 2000中如何存取图片信息?解决方法:新建一个工程,添加 ado 控件,2个 Command ,1个 Picture,1个 ImageDim Chunk() As ByteDim lngLengh As LongDim intChunks As IntegerDim intFragment As IntegerConst ChunkSize = 1000Const lngDataFile = 1Private Sub cmdBrowse_Click()On Error Resume NextWith cmdlFilePath.Filter = "JPG Files|*.JPG|Bitmaps|*.BMP".ShowOpentxtFilePath.Text = .filenameEnd WithEnd SubPrivate Sub Savepic()Open "c:colordraw0094_m.jpg" For Binary Access Read As lngDataFilelngLengh = LOF(lngDataFile)If lngLengh = 0 Then Close lngDatafile: Exit SubintChunks = lngLengh ChunkSizeintFragment = lngLengh Mod ChunkSizeOpenData 打开数据库Dim i As IntegerDim rs As New ADODB.RecordsetDim strQ As StringIf rs.State = adStateOpen Then rs.ClosestrQ = "Select * From mydata"rs.Open strQ, conn, adOpenStatic, adLockOptimisticOn Error Resume Nextrs.AddNewReDim Chunk(intFragment)Get lngDataFile, , Chunk()rs.Fields("rs_photo1").AppendChunk Chunk()ReDim Chunk(ChunkSize)For i = 1 To intChunksGet lngDataFile, , Chunk()rs.Fields("rs_photo1").AppendChunk Chunk()Next irs.Updaters.CloseClose lngDataFileCall ShowPicEnd SubPublic Sub ShowPic()OpenData 打开数据库Dim i As IntegerDim rs As New ADODB.RecordsetDim strQ, filename As StringIf rs.State = adStateOpen Then rs.ClosestrQ = "Select * From mydata"rs.Open strQ, conn, adOpenStatic, adLockOptimisticIf rs.EOF True Thenrs.MoveLastElseExit SubEnd IfOn Error Resume NextOpen "pictemp" For Binary Access Write As lngDataFilelngLengh = rs.Fields("rs_photo1").ActualSizeintChunks = lngLengh ChunkSizeintFragment = lngLengh Mod ChunkSizeReDim Chunk(intFragment)Chunk() = rs.Fields("rs_photo1").GetChunk(intFragment)Put lngDataFile, , Chunk()For i = 1 To intChunksReDim Buffer(ChunkSize)Chunk() = rs.Fields("rs_photo1").GetChunk(ChunkSize)Put lngDataFile, , Chunk()Next iClose lngDataFilefilename = "pictemp"Picture1.Picture = LoadPicture(filename)Image1.Stretch = TrueImage1.Picture = Picture1.PictureKill filenameEnd SubPrivate Sub Command1_Click()SavepicEnd SubPrivate Sub Command2_Click()ShowPicEnd Sub上面写的是acess的代码!楼主可以改一下连接数据库的设置代码用于sql server!