当前位置: 首页 > 图文教程 > 开发语言 > VB > Visual Basic数据库开发疑难问题解

VB
串口通讯及其在VB平台下的实现
VB中用API实现文件拖放
VB表格控件总览与例程分析
在VB中用DAO实现数据库编程
VB6将XML数据传入TreeView控件
VB和VB.NET中的XML操作
用VB.NET实现你的游戏梦想
用FileStreams将DTD插入XML中
Visual Basic.NET编程的设计思考
用VB设计控制上网时间程序
VB.NET实现Windows进程管理器
VB.NET启动并监测外部程序
VB6.0数据库访问技术与例程解析
VB.NET开发扫描客户端服务工具
VB制作一个通信卡片ActiveX控件
用VB6.0设计一个打字练习软件
消息队列在VB.NET数据库开发中的应用
用VB6.0快速实现图象加柔效果
VB6.0设计真正实用的TreeView控件
优化之路:精简VB中的分段应用程序(上)

VB 中的 Visual Basic数据库开发疑难问题解


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-29   浏览: 247 ::
收藏到网摘: n/a

  问:如何显示格式为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 Int