DBMS table not found[Microsoft SQL Native Client: 无法完成延迟准备

本文介绍了一种使用ArcGIS Server for Flex跨平台调用ASP.NET服务时遇到的问题及其解决方案。主要讨论了如何处理由于图层名称在不同环境中表示不一致导致的错误,并提供了一个具体的案例来说明如何解决这一问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       用ArcGIS Server for Flex调用asp.net的服务出现的问题。

       客户端环境:Eclipse+Flex builder+ArcGIS Server for Flex

       服务端环境:Visual Studio 2005+Asp.Net+ArcGIS Engine

       数据库环境:SQL Server 2005+ArcSDE

 

       问题描述:我在Eclipse端通过WSDL调用VS2005+AE写的服务,这个服务就是通过客户端传递一个图层名,然后在服务端打开这个图层,调试的时候发现出现了“DBMS table not found[Microsoft SQL Native Client: 无法完成延迟准备”这个错误。

      我的数据是在ArcSDE中存放的,我的数据库名字为mySDE,打开的图层名为banks,通过逐步调试发现,错误信息中包含了这样一条内容“对象名  'mySDE.DBO.banks' 无效” ,如上所说mySDE是建立在SQL Server 2005中的数据库的名字,banks是存放在mySDE中的图层名字,那么DBO是什么呢?先不管,我去ArcCatalog中打开mySDE,发现图层banks在mySDE中存放的名字是“mySDE.DBO.banks”,那就怪不得找不到“mySDE.DBO.banks”了。

       既然找到了病症,那只好对症下药了,把ArcSDE Post一下,选择DBO Schema。安装完之后,重新测试,成功!有童鞋问,DBO和SDE Schema有啥区别呢,自己Google一下吧,很多呢。

### 使用 PowerBuilder 11.5 下载数据库中的 PDF 文件 PowerBuilder 是一种用于快速应用程序开发 (RAD) 的集成开发环境 (IDE),广泛应用于企业级应用系统的构建。对于从数据库中下载 PDF 文件的需求,可以采用以下方法实现。 #### 方法概述 为了从数据库中提取并保存 PDF 文件,在 PowerBuilder 中通常会涉及到二进制数据类型的处理以及文件操作函数的应用。具体来说: - **连接数据库**:建立与存储有 PDF 数据库表的连接。 - **查询语句执行**:编写 SQL 查询来获取目标记录及其对应的 BLOB 字段内容[^1]。 - **读取 Blob 数据**:利用 `SQLCA` 或者 DataWindow 控件将返回的结果集映射至变量。 - **写入本地磁盘**:通过 File 函数把接收到的数据流转换成实际可识别格式,并存放到指定位置上。 下面是具体的代码示例说明如何在 PowerBuilder 11.5 中实现上述过程: ```powershell // 假设有一个名为 'pdf_table' 表格,其中包含 id 和 pdf_data 列, // 其中 pdf_data 存储的是 PDF 文档作为 BLOB 类型。 long ll_id = 1 // 要检索的具体 ID 号码 string ls_filename, ls_pathname blob lb_pdfdata // 设置要保存的目标路径和文件名 ls_pathname = "C:\temp\" ls_filename = "downloaded_file.pdf" try // 执行 SELECT 语句以取得特定 ID 对应的 PDF 数据 sqlca.dbms = "MSSQL Native Client 10.0" // 根据实际情况调整驱动程序名称 sqlca.database = "your_database_name" sqlca.logid = "username" sqlca.password = "password" CONNECT USING sqlca; SELECT pdf_data INTO :lb_pdfdata FROM pdf_table WHERE id = :ll_id ; DISCONNECT; catch (SQLException sqlexception) MessageBox("Error",sqlexception.sqlerrtext) end try if not IsNull(lb_pdfdata) then // 将 blob 写入到物理文件系统中去 INTEGER li_FileNum li_FileNum = FileOpen(ls_pathname + ls_filename,BinaryMode!,Write!) IF li_FileNum > 0 THEN FileWrite(li_FileNum, lb_pdfdata ) FileClose(li_FileNum) Messagebox("Success","The file has been successfully downloaded.") ELSE Messagebox("Failure","Failed to open the destination file for writing.") END IF else Messagebox("Warning","No data found with specified ID.") endif ``` 这段脚本展示了怎样使用 PowerScript 编程语言访问外部资源并将它们持久化为本地副本的过程。需要注意的是,这里假设读者已经具备了一定程度上的编程基础,并熟悉所使用的 RDBMS 平台特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值