PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

[求助] C++用ADO连接SQL数据库出错

[复制链接]

2014-10-17 08:11:57 2865 0

xiao2076 发表于 2014-10-17 08:11:57 |阅读模式

xiao2076 楼主

2014-10-17 08:11:57

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
//类文件
4 t  c9 P- b- b: x7 Q1 S3 J#pragma once) a0 p" }, y' W: R
#include "iostream"     : b! T! }1 C% R
#include "string"     
9 c7 ?- w. @( P* k1 j' i: u6 l#include "vector"     
9 f$ e9 q) |7 U# [9 t- N# L2 Z; ?* t! `( i- h: h9 X- g5 q
//添加对ADO的支持   
8 r; F) b: d  N$ M#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
* X3 @! F2 v8 U0 G% o#include <NXOpen\Session.hxx>
5 H( U8 p. E3 u! V/ o
+ F0 K% j. C% d* d  O+ w7 W; f#include "uf.h"/ u  E  j2 f4 K
#include "uf_ui.h"- e8 {, [$ Z  x5 v! e- p
#include <NXOpen/UI.hxx>' p; ]2 ^7 m8 R3 {/ v
#include <NXOpen/NXMessageBox.hxx>
1 p( u9 p! {8 |#include <sstream>
, j3 ~" i! Y8 D% D$ Q, T: t2 a#include <NXOpen/ListingWindow.hxx>4 G) ^- }8 K0 s# Q/ i
using namespace NXOpen;
0 F1 X) I7 B* M% y( R* Susing namespace std;% Q9 y& ?; V9 X( }4 j' i* F
class LinkSQL! M* v; G" Q; \1 i2 c
{: J6 y+ s4 ]; b/ v8 q
public:+ u/ q- T  G. a" S7 k% ]: N8 [
        LinkSQL(void);
) d: z0 _; v- o4 k- b        ~LinkSQL(void);4 C% K# O; T, E3 {! u7 ]
        void OpenSQL();
5 Q- Z, p5 U& m( a; {        void ShowInformation();
7 s8 a' Y6 L& r# H! n        void CloseSQL();' u7 R5 N! T6 }- k( G& f
private:7 i, L* H  Q: F5 U! r
        Session *theSession;
: |% T- B$ D! d7 S        UI *theUI;
' [6 }; `9 W% Z- o        _ConnectionPtr pMyConnect;: v( f' n. _/ G. M& H' N
        _RecordsetPtr pRst; * f  t! ~& {/ q" H; l9 E
        stringstream ss;& a/ P6 |  M3 k
};# b# c* E7 j! y

) K. y/ k" N) t- g- {; ?LinkSQL:inkSQL(void)
# t* |# B% S* y( P! y, ~/ @! B{0 r# S* \6 d! Z% U' s4 G1 r6 z4 B
        CoInitialize(NULL); //初始化COM环境              . i: r4 V$ V$ G9 T+ w
        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象   
6 P0 V4 T: o) B1 l! @7 b  N        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  % d5 t; y' Z, o) t7 v
        theSession=Session::GetSession();
% Z# a% [1 U4 d& M/ H. E        theUI=UI::GetUI();
- z" H, p3 A# F% q}' k& V2 s/ \, m) P% J

! W- K9 I# J# j+ f8 R; {0 N6 }; W' n+ {/ M7 |5 P4 y
LinkSQL::~LinkSQL(void): o+ @- W! h1 r% V- W4 {
{9 g$ W( H$ [" B) S1 Q. t' T
}2 {1 U3 Q1 X7 i8 E7 |: M3 F& e
void LinkSQL::OpenSQL()
0 ?, f0 {' w& j' L- `{3 S3 ]( ?% g3 b8 Q
        try            
2 x: b1 S$ k: C- z% q8 F" }+ z        {               
  T; |- b/ N7 l/ h. v. F2 M       
6 X* C1 N: Z3 ?' c- }- F                /*打开数据库“SQLServer” */               
+ m7 W) t/ Z' N- s                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  2 I' m7 S8 z, D: ^& k+ Z1 q
                    
: _* u% j+ I& R  ?7 v" F% Y1 A        }   
, b1 T& T( [3 y. L        caTCh (_com_error &e)             4 [$ A, j5 F! g; J# f6 E
        {                / O& Q5 M1 I2 l
                 
0 ]* |& w1 [/ c1 G( A- ~8 w7 ~                ss<<e.ErrorMessage();     
# b4 c* W- {1 F' ~, |; _+ h1 m                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());4 N  F, E: w8 K) L+ i+ b1 m$ C, e
                ss.str("");$ E( \# m- t8 ~% g/ K" L
                           
" F2 ?. L, K! r# Q: O  e        }            
  q* Y' |: {  M% _$ S! d                         
" W% P" I8 g' b7 Z, s. F4 A5 C4 K}
" F2 U0 ^1 R* y, [; Lvoid LinkSQL::CloseSQL()+ e  ~2 M. d" R& z% P# a# Q
{
, E& ^0 n  b1 T5 w0 ?# R, y        try            
6 a  S; W+ c, I  k) V        {                 
; P6 A4 @% X" N. j( G
1 ^0 R1 I  G9 w/ c' s: G                pRst->Close();     //关闭记录集                  8 s: p9 g/ A! W
                pMyConnect->Close();//关闭数据库                  4 ^1 |& ^& i% {* ?2 W7 p
                pRst.Release();//释放记录集对象指针                  
% Z/ l' }; }# \' T' V                pMyConnect.Release();//释放连接对象指针   
9 p+ z  a/ g' h/ @9 ?' q        }  
" W$ F$ X9 r% D: e( v  \        catch(_com_error &e)             % ?$ [2 ]$ U; X
        {                 
6 {. k5 I0 X( g                ss<<e.ErrorMessage();     
0 d" s/ D4 d9 A# E( P: A8 Z                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());5 N) I8 I) v4 j- Q
                ss.str("");         
( f: J/ ?$ G" e) p, I  z/ r. V        }                  
5 h* M1 r; I1 @+ m       
8 \, ~6 p1 E. P        CoUninitialize(); //释放COM环境   
5 S* M4 [* s$ ?! v# F3 q+ W, O  g}
( V7 C0 z5 }) J9 u0 d+ Yvoid LinkSQL::ShowInformation()- {# z" @2 j" i' E) h: N. n% C
{
2 P5 [7 G) E4 [4 ^3 N: p2 v' I$ Q8 r& {+ S9 g+ s
        ListingWindow *thwLW=theSession->ListingWindow();* V, `5 Q' a% X- ^. w9 }) K
        thwLW->Open();
1 o9 C5 K  y7 R. H, V+ q/ A+ x0 o1 t& O
        try' G7 r" l0 f6 l+ O
        {
8 ]7 j+ F0 K! G& s& `/ v( X9 }                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat   
/ t- |' I) I9 k# p( r4 l        }3 w( q6 s# y9 M' x2 R
        catch(_com_error &e)- w& y; [) R5 _) R( O
        {2 n. h, W+ G: V" P7 A# j
        ; p+ v! v  L; J; ~7 m8 ?2 m7 \
                ss<<e.ErrorMessage();9 M+ f! [" [5 R, u
                thwLW->WriteLine(ss.str());
, l5 C, a9 f, Z' W4 D                ss.str("");
! G% M* c) ?  a8 n" G3 c                return;
$ i& H( \) j' a; o: N5 |        }
* K, |' l& X' T2 z2 T- V+ w}9 t9 a9 k: O2 m% G# o3 a; d
//执行文件5 f+ x( H9 _$ _: A& M+ w  q
        LinkSQL *theLinkSQL=new LinkSQL;
" q1 H& d5 i; A0 t3 o5 Y! ]) g  l        theLinkSQL->OpenSQL();! A# q7 b' O2 S7 l3 E
        theLinkSQL->ShowInformation();2 p2 u, |" i9 J" N- M5 {) ?
        theLinkSQL->CloseSQL();4 B) p3 c$ O: ~  Z
        delete theLinkSQL;
. a' ^3 y, S1 E8 k* |6 Q
1 F' [- y2 `+ G哪个地方出错了,在控制台程序的时候没问题,在UG中就会出错
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了