S Q L P R E P A R E () 函 数

S Q L P R E P A R E () 函 数 - 图1S Q L P R E P A R E () 函 数 - 图2在使用 SQLEXEC ( ) 执行远程数据操作前 可使用本函数使远程数据为将要执行的命令做好准备

语 法

SQLPREPARE( nConnectionHandle , cSQLCommand , [CursorName ])

S Q L P R E P A R E () 函 数 - 图3返 值 类 型

数值型

参 数 说 明

nConnectionHandle

S Q L P R E P A R E () 函 数 - 图4S Q L P R E P A R E () 函 数 - 图5指 定 连 接 句 柄 ( connection handle) 这 个 句 柄 通 常 是 由 SQLCONNECT( ) 函数 返 回 的

cSQ L Command

S Q L P R E P A R E () 函 数 - 图6S Q L P R E P A R E () 函 数 - 图7要 传 递 给 远 程 数 据 源 并 由 远 程 数 据 源 执 行 的 SQL 语 句

S Q L P R E P A R E () 函 数 - 图8S Q L P R E P A R E () 函 数 - 图9S Q L P R E P A R E () 函 数 - 图10在 这 个 SQL 语 句 中 的 W H E R E 子 句 中 可 以 包 含 参 数 但 所 有 W H E R E 子 句中 的 参 数 都 必 须 在 SQLPREPARE ( ) 执 行 前 事 先 定 义 例 如 如 果 您 在

S Q L P R E P A R E () 函 数 - 图11S Q L P R E P A R E () 函 数 - 图12W H E R E 子 句 中 包 含 有 一 个 变 量 那 么 这 个 变 量 必 须 在 SQLPREPARE( ) 执行 前 已 被 初 始 化

CursorName

S Q L P R E P A R E () 函 数 - 图13S Q L P R E P A R E () 函 数 - 图14S Q L P R E P A R E () 函 数 - 图15S Q L P R E P A R E () 函 数 - 图16指 定 一 个 V isual FoxPro 临 时 表 SQL 语 句 执 行 后 返 回 的 查 询 结 果 将 被 保 存在 这 个 表 中 如 果 您 不 指 定 表 名 V isual FoxPro 将 用 SQLRESULT 作 为 默 认表 明

S Q L P R E P A R E () 函 数 - 图17S Q L P R E P A R E () 函 数 - 图18如 果 远 程 执 行 后 的 结 果 需 要 多 个 临 时 表 临 时 表 名 将 由 您 指 定 的 表 名 结 尾 加递 增 的 数 字 编 号 组 成

说 明

S Q L P R E P A R E () 函 数 - 图19S Q L P R E P A R E () 函 数 - 图20S Q L P R E P A R E () 函 数 - 图21S Q L P R E P A R E () 函 数 - 图22SQLPREPARE ( ) 将 SQL 语句传送到数据源 在那里 SQL 语句被事先编译 这样

S Q L P R E P A R E () 函 数 - 图23S Q L P R E P A R E () 函 数 - 图24S Q L P R E P A R E () 函 数 - 图25S Q L P R E P A R E () 函 数 - 图26S Q L P R E P A R E () 函 数 - 图27当您执行 SQLEXEC( ) 函数时 速度会快得多 另外 如果您事先执行了SQLPREPARE( ) 那么在其后的 SQLEXEC( ) 所使用的参数中只须指定连接句柄nConnection Handle 即可

示 例

gcAuthor = ‘Smith’

= SQLPREPARE (gnConnHandle, ‘SELECT * FROM authors; WHERE au_lname = ?gcAuthor ’)

= SQLEXEC(gnConnHandle)

gcAuthor = ‘Jones ’

= SQLEXEC(gnConnHandle)

请 参 阅

SQLCONNECT ( ), SQLEXEC( )