怎样在Install shield或PB 里直接把数据库附加到SQLSERVER中???急~!!

xiaomi603 2003-05-19 10:36:54
怎样在Install shield或PB 里直接把数据库附加到SQLSERVER中???急~!!
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
喝醉的咖啡 2003-05-19
  • 打赏
  • 举报
回复
楼上说的符合楼主字面要求,不知道是不是楼主需要的?

sp_attach_db
将数据库附加到服务器。
注意哦:只应对以前使用显式 sp_detach_db 操作从数据库服务器分离的数据库执行 sp_attach_db。

呵呵,这指的是对一个数据库的物理存储的文件进行拆分和“还原”,前提是该库已经存在,且表和数据类型、数据验证等一致。我说的是用于安装到其它服务器上的“备份”/“还原”,或者在安装程序中“创建库”。
andyzq 2003-05-19
  • 打赏
  • 举报
回复
在pb里调用系统存储过程sp_attach_db即可

//附加数据库
SQLCA.AutoCommit = true

string ls_path, ls_name, ls_database_path, ls_mdf_name, ls_ldf_name
long ll_return

ls_path = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Currentversion\Uninstall\Microsoft SQL Server 2000"
RegistryGet(ls_path, "InstallLocation", RegString!, ls_name)
ls_database_path = ls_name + "\data\"
ls_mdf_name = ls_database_path + 'enterprise_Data.MDF'
ls_ldf_name = ls_database_path + 'enterprise_Log.LDF'


DECLARE up_add_database PROCEDURE FOR sp_attach_db
@dbname = 'enterprise',
@filename1 = :ls_mdf_name,
@filename2 = :ls_ldf_name;
EXECUTE up_add_database;
close up_add_database;
commit;
喝醉的咖啡 2003-05-19
  • 打赏
  • 举报
回复

引入数据库方法:
1、假如安装了SQLServer或者客户端工具,就可以用命令行 osql 命令,用 osql /? 查询帮助,或者看看联机帮助,大概的语法如下:osql -U login id -P password -d databasename -Q "cmdline query"
这里可以用osql执行 restore database 来还原数据库——注意:备份数据库的时候要把相关的loginid去掉,restore之后用osql调用存储过程重建即可。如果不去掉,restore的时候需要做很多判断和操作,比较麻烦。
因此,你可以在 InstallShield 中用 LaunchAppAndWait 来执行 osql;
2、写一个COM,或者VBScript(.vbs),在 InstallShield 中调用来实现上面过程;
3、用pb写一段程序专门来进行这个操作,在InstallShield的脚本 function OnFirstUIAfter() 中(即安装过程执行完毕)调用其实现导入数据库。

对于以上方法,要说明程序中如何“引入”数据库——还原数据库。由于我不懂pb,可以简单说一下过程(主要是 sqlserver 存储过程调用)。
1、制作数据库——备份数据库成为一个文件,备份前去掉该库相关的 login id,使其没有任何账号和权限可以访问;
2、用提供的 loginid 和 password 连接指定的 serverip,或者你用odbc等等;
3、注意,该 loginid 必须是 sa 或者相应权限的数据库,因此首先用其创建一个空库——注意判断重名。

先把当前库转为 master,
"USE master"

判断该库是否已经存在
"IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'" & gDataBaseName & "') DROP DATABASE [" & gDataBaseName & "]"
如果存在,则 drop(或者提示)

创建空库:
"CREATE DATABASE " & gDataBaseName & " ON ( NAME = " & gDataBaseName & "_dat, FILENAME = '" & strDBFilename & "', SIZE = 4, MAXSIZE = 10, FILEGROWTH = 1 ) LOG ON ( NAME = " & gDataBaseName & "_log, FILENAME = '" & strDBLogFilename & "', SIZE = 4, MAXSIZE = 10, FILEGROWTH = 1 ) COLLATE Chinese_PRC_CI_AS"
这里面需要注意生成的库文件和日志文件放到哪里,库的初始大小和增长情况等等;

3、用指定的库文件还原该库:
"Restore database " & gDataBaseName & " from Disk='" & strDBBackupFilename & "' with move '" & gDataBaseName & "_data' to '" & strDBFilename & "', move '" & gDataBaseName & "_log' to '" & strDBLogFilename & "'"
同样注意:生成的库文件和日志文件放到哪里,库的初始大小和增长情况等等。因为备份环境与安装环境的差异,备份文件中已经记录了这些信息,因此这里需要强制指明。
4、创建 login id 和 相应的权限
要弄清楚 sqlserver 的安全机制,有 loginid 才能“连接”数据库服务器,该 id 具备了对特定数据库的特定权限,才能“访问”该“(逻辑)数据库”。因为备份库的时候可能已经记录了login id等等,因此才要求前期准备工作中删掉这些信息。

下面的操作是对上面这一要求没有做到的“预防”措施
"if exists( select name from " & gDataBaseName & ".dbo.sysusers where name='" & gDataBaseAdmin & "') select 1 else select 2"
判断对该库是否存在指定 loginid 的访问权——即该逻辑库的username,根据返回1或者2得到结果
如果存在,可以用 "sp_dropuser '" & gDataBaseAdmin & "'" 删除该 loginid
这里也可以对所有对该库的关联账号一律删掉。

"if exists( select name from master.dbo.syslogins where name='" & gDataBaseAdmin & "') select 1 else select 2"
这一步根据结果使用"sp_droplogin '" & gDataBaseAdmin & "'"删除相关 login id
5、最后使用
"sp_addlogin '" & gDataBaseAdmin & "','" & gDataBasePassWord & "','" & gDataBaseName & "'"
创建 login id,并关联到该数据库作为默认库。
然后使用 sp_adduser 设置该 login id 对 该库的数据库访问权限。

ok,完毕。

这些内容,完全可以写成一个 sql 文件,然后用程序读入来执行。
或者写成一个存储过程,然后由程序,或osql读入数据库,然后调用执行。
这两种方法,前者需要用程序读取到的变量替换sql文件中的数据库名字等,后者需要传递足够的参数给存储过程。

最后,如果你的目的不是“把数据库附加到SQLSERVER中”,而是创建一个空库,那最简单就是在sqlserver中对现有库“生成SQL”,另存为一个文件,然后再用程序或者osql创建该库。
其中注意的是,osql读入sql文件批量执行多个sql语句,必须分段来写,每句之间加入一句 go 来告诉 sqlserver 分开执行,不能连续执行。

呵呵,如果你不熟悉 SQLServer别再问下去了,SQLServer 联机帮助中有所有上面提到的语句,不会可以看看联机帮助——简体中文的。我这里给你了基本的思路和语句,你可以自行发挥,有些地方可以换种方式实现。尤其有几个语句已经有新版本了,我这里是两三年前的代码,但可以不用替换,都是兼容的。

时间有限,随便写了一些,希望对大家有所帮助。
内容概要:本文提出了一种基于改进扩散模型的高海拔地区新能源高波动出力场景生成方法,并提供了完整的Python代码实现。该方法针对高海拔地区风能、光伏等新能源出力波动剧烈、不确定性高的特点,通过优化扩散模型的结构与训练策略,有效捕捉历史数据的概率分布特征与时序相关性,从而生成高质量、多样化的出力场景。文详细阐述了模型的数学推导、网络架构设计、损失函数优化及采样算法改进,并通过实验证明其在拟合精度、场景多样性与稳定性方面优于传统生成模型,为电力系统在高比例新能源接入下的规划、调度与风险评估提供了可靠的场景输入支持。; 适合人群:具备一定Python编程能力和机器学习基础,从事新能源发电预测、电力系统分析、智能优化、场景生成等方向研究的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①用于高海拔地区风电、光伏出力的不确定性建模与多场景生成;②支撑含高渗透率新能源的电力系统随机优化调度、鲁棒决策与风险评估;③为相关学术研究、论文复现与算法改进提供可运行的技术方案与代码基础; 阅读建议:建议读者结合所提供的完整资源(代码、数据集、说明文档)进行实践操作,重点关注扩散模型的前向加噪与反向去噪过程的设计细节,以及如何将其适配于新能源时序数据的生成任务,通过参数调优与对比实验深入理解模型的生成机制与性能边界。
内容概要:本文围绕基于静态约束法的配电网电动汽车接入容量评估展开研究,提出了一种在新型电力系统背景下评估主动配电网对电动汽车承载能力的方法。研究通过构建数学模型,结合潮流计算与关键约束条件(如电压越限、线路过载等),量化分析配电网可承受的最大电动汽车充电负荷容量,旨在识别规模化电动汽车接入带来的潜在运行风险,并为电网规划与运行提供科学依据。文配套提供了完整的Matlab代码实现,便于仿真验证与结果复现。此外,该研究与分布式光伏承载力评估、电动汽车可调能力分析等方向形成技术联动,展现了多主题协同的研究体系。; 适合人群:具备电力系统分析基础理论知识及Matlab编程能力的高校研究生、科研机构研究人员,以及从事新能源并网、智能配电网规划与运行等相关领域的工程技术人员。; 使用场景及目标:①用于学术研究的模型复现与论文撰写支撑;②评估实际配电网电动汽车大规模接入的可行性与安全边界,指导充电基础设施布局;③作为高校教学案例,帮助学生深入理解电网承载力评估的核心原理、建模方法与仿真技术; 阅读建议:建议结合文提及的相关研究方向(如二阶锥规划、多面体聚合方法等)进行对比学习,充分利用所提供的Matlab代码与网盘资料开展仿真实验,重点关注约束条件的设定逻辑与潮流计算模块的实现细节,以深化对评估模型机理与工程应用价值的理解。
内容概要:本文围绕“考虑隐私保护的分布式联邦学习电力负荷预测研究”展开,提出了一种基于Python实现的联邦学习框架,旨在解决居民或行业电力负荷预测用户电表数据隐私泄露的风险。该研究通过构建分布式机器学习模型,使各参与方在不共享原始数据的前提下协同训练全局模型,有效实现了数据“可用不可见”。文详细阐述了联邦学习的整体架构设计、本地模型训练流程、参数加密传输与安全聚合机制,并结合差分隐私等技术进一步增强系统的隐私保护能力。同时,研究利用真实电力负荷数据集进行了实验验证,展示了方法在预测精度与隐私保障之间的良好平衡,并提供了完整的代码实例与复现指南,便于后续研究与应用拓展。; 适合人群:具备一定机器学习基础和电力系统背景知识,从事智慧能源、隐私计算或人工智能相关方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 实现跨区域、跨主体的电力负荷协同预测,打破数据孤岛;② 在确保用户用电数据隐私安全的前提下提升负荷预测准确性;③ 推动联邦学习在智能电网、需求响应、虚拟电厂等场景的实际部署与应用。; 阅读建议:建议结合文提供的Python代码与网盘资料进行动手实践,重点关注联邦学习的通信轮次设计、模型聚合算法(如FedAvg)的实现细节以及差分隐私噪声添加策略,深入理解其对模型性能与隐私强度的影响,为进一步优化与创新奠定基础。
VDA_Band_19.1_3rd edition_2026 English Inspection of Technical Cleanliness 内容概要:本文档为德国汽车工业协会(VDA)发布的第三版《技术清洁度检验:功能相关汽车部件的颗粒污染检测》(VDA 19.1),系统规范了汽车行业零部件技术清洁度的检测方法与流程。文件涵盖从取样、提取、过滤到分析的全流程标准化操作,重点更新了干法提取(如 Stamp Test 和刷吸法)、小于50µm颗粒的检测、光学子系统和SEM/EDX标准分析方法,并引入统一材料分类体系以提升结果可比性。同时明确了“标准分析”与“自由检验”的区别,前者用于高兼容性检测,后者允许客户与供应商协商定制参数。文档还强化了对非可测组件的技术清洁保障、测量不确定度评估及方法验证的要求,并提供了多个实际案例支持应用落地。; 适合人群:适用于汽车制造业从事质量控制、工艺开发、供应商管理及相关检测实验室的技术人员和管理人员,尤其适合具备一定质量管理或洁净度检测基础的专业人员。; 使用场景及目标:①用于制定和执行零部件清洁度检测标准;②指导 incoming/outgoing 检验及生产过程监控;③支持失效分析与质量改进项目;④作为企业内部审核和技术交流的依据; 阅读建议:建议结合VDA 19.2及其他相关标准配套使用,重点关注各章节的起始参数设定、方法选择逻辑及附录的检查表示例,在实际操作同步开展方法验证与人员培训,确保检测结果的有效性和可追溯性。

1,111

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧