首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图 ┆ 虚拟主机 ┆ 中文域名
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 软件开发 → VB编程 → 文章内容

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

作者:佚名  来源:网上收集  发布时间:2005-12-8 1:32:30
  问:如何显示格式为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!


[] [返回上一页] [打 印]
  • 上一篇文章:VB6实现局域网多站点互连完全手册
  • 下一篇文章:利用VB驱动pcAnyWhere进行自动文件传输

  • 相关文章:
  • Windows Vista常见八大疑难问题解决方法
  • 在Visual C++中使用内联汇编
  • Visual C++6.0 API函数操作技巧集
  • 理解 Visual C++ Extensions for ADO
  • 基于Visual C++ 的自动化客户端的实现
  • 使用Visual C++开发SOAP客户端应用
  • Visual C#的SQL Server编程
  • [图文]Visual C++ 优化概述
  • [组图]Visual C++.NET GDI+编程基础
  • Visual Basic.NET快速开发MIS系统
  • Visual Basic中实现I/O端口控制
  • 如何用Visual C#做组件
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号