`
cjc
  • 浏览: 673607 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何象SQL语句中的Exec那样在VB中执行一段代码?

阅读更多

利用API  引用vb6a.dll  (Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long)可以实现字符串命令的执行和字符串表达式的运算(http://blog.csdn.net/northwolves/archive/2004/04/05/19592.aspx),但由于VB6a.dll只能应用于IDE 环境,程序一经编译,必然出错,无法生成可执行文件.
如:

Option Explicit
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
Private Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
    ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Private Sub Command1_Click()
ExecuteLine "dim pi as double"
ExecuteLine "pi= 4*atn(1)"
ExecuteLine "msgbox ""Pi=""& pi"
End Sub


如何解决这个问题,查了许多资料,包括在许多论坛上的讨论,也没能完美解决.个人认为还是ScriptControl控件调用方便些:

Option Explicit
Sub Main()
Dim scr As Object, mysub As String
Set scr = CreateObject("MSScriptControl.ScriptControl")
   mysub = "sub msg()" & vbCrLf
   mysub = mysub & "MsgBox ""今天是"" & WeekdayName(Weekday(Date)) & ""!"", vbOKCancel + vbInformation, ""提示"""
   mysub = mysub & vbCrLf & "end sub "
   scr.Language = "vbscript"
   scr.AddCode mysub
   scr.ExecuteStatement "msg"
   Set scr = Nothing
End Sub

上述代码在编译前后都能正确运行.

分享到:
评论

相关推荐

    达梦数据库常用sql语句语法

    ### 达梦数据库常用SQL语句语法 #### 一、新建表 在达梦数据库中创建新表时,可以通过以下语法实现: ```sql CREATE TABLE [表名] ( [自动编号字段] INT IDENTITY(1,1) PRIMARY KEY, [字段1] NVARCHAR(50) ...

    用vb net+sql开发的数据库代码

    在VB.NET中,可以创建一个存储过程或者执行SQL脚本来完成这个任务。以下是一个简单的示例,通过SQL语句附加数据库: ```vbnet Dim附加语句 As String = "EXEC sp_attach_db @dbname=N'YourDatabaseName', @filename1...

    sql 经典语句大全(VB)

    请注意,在执行此操作前确保备份重要数据,因为一旦执行删除操作将无法恢复。 **3. 备份SQL Server数据库** - **步骤一**: 创建备份设备 - **语法**: ```sql USE master; EXEC sp_addumpdevice 'disk', '...

    怎么写sql语句将Excel的数据插入到SQL Server数据库.doc

    如何使用SQL语句将Excel数据插入到SQL Server数据库 在SQL Server中,处理Excel数据时,通常使用`OpenDataSource`函数结合OLE DB提供程序来实现数据的导入导出。以下是一些具体步骤和示例: 1. **查询Excel数据:*...

    VB6 下使用SQLite 的完整例子,最全面

    `sqlite3_exec`函数在执行SELECT查询时,会返回一个结果集。你需要定义一个回调函数来处理每一行数据。VB6中可以使用`Declare`语句声明一个C风格的回调函数,然后在`sqlite3_exec`的参数中传入。 此外,VB6中使用...

    SQL存储过程

    SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该过程需要参数)来调用执行。在SQL Server 2000中,存储过程扮演着重要的...

    第4章-数据库语言SQL(下)

    它允许将SQL语句与宿主语言(如C)无缝结合,通过预编译将SQL语句转化为可执行的代码。例如,`EXEC SQL DELETE FROM 学生;` 这样的语句在C程序中被预处理后,可以在运行时删除"学生"表的所有记录。 在嵌入式SQL中,...

    VB分离SQL数据库文件

    这通常涉及到对SQL Server的管理操作,例如使用Transact-SQL语句或者SQL Server Management Studio(SSMS)进行。然而,通过编写VB程序,可以自动化这个过程,使得数据库管理员或者开发者能够更方便地执行这一任务,...

    数据库技术与应用:Chap05-1 存储过程.pptx

    【存储过程】是数据库技术中的一个重要概念,是预先编译并存储在数据库服务器上的SQL语句集合,可以被多次调用执行,具有提高性能、减少网络流量、增强安全性等优点。在本讲义中,主要介绍了与存储过程相关的几个...

    通用的asp仿sql注入

    SQL注入是一种常见的网络安全漏洞,黑客通过在输入字段中插入恶意SQL语句来操纵或窃取数据库中的数据。为了保护Web应用程序免受此类攻击,开发人员可以采取一系列措施来过滤和验证用户输入,确保其安全性。 ### ...

    T-SQL编程入门详解

    此外,由于`filestream`数据通常包含在源文档文件中,因此在插入或修改这些数据时往往需要执行外部程序代码。SQL Server Native Client 10.0库(`sqlncli10.dll`)中的`OpenSqlFileStream API`为这种场景提供了编程...

    断开数据库所有用户打开的连接

    尽管断开所有用户连接对于某些场景非常有用,但在执行此类操作时也需谨慎: - **数据一致性**:确保在断开连接前,所有必要的事务已经提交或回滚,避免数据丢失或不一致。 - **用户影响**:此操作将中断所有用户的...

    数据库系统基础教程(第8章).ppt

    在宿主语言中使用SQL语句时,SQL代码语句必须紧跟在关键字EXEC SQL之后。系统将预处理这些语句,并用宿主语言中合适的函数来代替这些语句。 6. 共享变量的声明和使用 共享变量的声明加入到两个嵌套SQL语句之间,...

    VB VBA 应用实例经典

    本节介绍了一个在 VBA 中调用 SQL Server 存储过程的示例。这个函数 `GetMaxNo` 用于获取最大编号,并且通过传递参数到存储过程中实现。 ##### 函数定义 ```vb Public Function GetMaxNo(Noname As String, LikeStr...

    ASP参数安全检查防SQL注入

    SQL注入是一种常见的攻击方式,通过插入恶意SQL语句来操纵数据库,进而获取敏感信息或破坏数据。 为了防止此类攻击,必须对用户提交的所有参数进行安全检查。这种检查可以通过多种方法实现,例如验证输入是否符合...

    A first course in database systems(8)PPT学习教案.pptx

    这些编程语言允许开发者编写嵌入SQL语句的代码,通过预编译和函数调用来处理数据库操作。 SQL和传统编程语言之间存在匹配失衡问题,因为SQL基于关系数据模型,而传统编程语言则主要处理整型、实型、字符型等基本...

    VB写的分离SQL Server数据库程序

    在VB中执行T-SQL命令可以使用Command对象,设置CommandText为分离数据库的SQL语句,然后调用Execute方法。为了获取命令执行的结果,可以使用Recordset对象,虽然在这个特定操作中可能不需要返回结果。 完成分离后,...

    SQLServer2005数据库应用与开发第08章存储过程和触发器.ppt

    存储过程是一组预先编译好的Transact-SQL语句,它们被封装在一起,形成一个可重用的模块,可以提高代码的效率、复用性和安全性。 **存储过程的优势** 1. **提高性能**:因为存储过程在首次执行时会被编译成执行计划...

    存储过程的创建和使用.ppt

    存储过程是数据库管理系统中预编译的SQL语句集合,它是由数据库管理员或开发人员创建并保存在数据库中的一组指令。在SQL Server中,存储过程可以在需要时通过其名称进行调用,提高了代码的重用性和执行效率。存储...

Global site tag (gtag.js) - Google Analytics