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 2843 0

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件; P! y# U5 w/ z6 [' K4 `$ Z3 u2 O6 i
#pragma once
: H0 a2 m/ @; ~& n; D#include "iostream"     0 t0 w* F) A- N2 Z
#include "string"     
& d% I& G2 N4 I; ^' ?#include "vector"     ; V7 d8 a/ T, X" R7 l

) o3 }* c+ i2 x& r! F- v' `! a//添加对ADO的支持   
( n5 L/ N  r! O#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
: v0 K) E& F/ q9 N" X#include <NXOpen\Session.hxx>
1 P8 t' R9 `! o$ L4 n* K) l- C" C% l  x2 m2 z' z4 P
#include "uf.h"- R! {: E9 P) u: }0 I# U  ]
#include "uf_ui.h"9 l5 i. T, \+ R+ N/ a- U1 c6 e: J
#include <NXOpen/UI.hxx>; `3 x0 h, a6 M% Y. w+ i  c
#include <NXOpen/NXMessageBox.hxx>
; P8 f% l7 i& }+ Z- s, B8 ^4 [1 n#include <sstream>
; C' e# H0 u# X* \#include <NXOpen/ListingWindow.hxx>
; v' O! m' H3 B" R( o( Musing namespace NXOpen;
" ?: _  S% y) y) n" o8 q7 i% b  lusing namespace std;9 Z+ g  T% V- u: v0 m
class LinkSQL
2 g6 z! B8 z4 m{4 c% H1 ?% F( S' n4 i& _4 v0 h
public:% z; J' k( P& D0 x
        LinkSQL(void);
# J3 S0 o7 {5 ]; v/ _1 c3 g        ~LinkSQL(void);
! F9 ]2 Z6 U( K! K        void OpenSQL();5 f/ E  q; {/ X* P. Q+ _
        void ShowInformation();! w& X% o, T4 b2 f( E
        void CloseSQL();
& w3 x' Z2 \4 Z. L0 S8 w+ `3 ~: Uprivate:
: o: J" ]* {  R2 C# t8 G, r        Session *theSession;
* v" g+ W4 B* W* E3 e$ t% m7 A        UI *theUI;
4 I+ Y6 n. _6 S! z: C5 O/ V+ @        _ConnectionPtr pMyConnect;5 |" K+ G1 s: |! y
        _RecordsetPtr pRst; + U8 t6 E+ O8 N; {$ q+ W7 _
        stringstream ss;# t$ u2 U, Y% i
};
+ x' E9 V) \) Q/ u# }8 d7 F% y5 f; ?1 q5 ^- D" j& `: Q
LinkSQL:inkSQL(void)
4 d' p. u5 ^! v0 x/ p9 K7 M* h{8 a" v# U* C' o1 L* L5 V
        CoInitialize(NULL); //初始化COM环境              9 m7 E# W+ J8 a! m' H1 Q6 p# z
        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象    , P5 D9 n+ @. E8 L5 ^
        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  
/ L: W5 P# N' L3 V5 [& [$ K0 X        theSession=Session::GetSession();
7 W$ o; m7 k. D5 R        theUI=UI::GetUI();  N! a! v' C( G6 e  P6 ~
}) o- ~$ U" Z* R* ]. e$ n
* w  H/ B2 \0 i( I3 H) @7 d7 E

+ E5 O% T$ x! v) [LinkSQL::~LinkSQL(void)1 E* ^. ^  e( {' q+ }5 a
{5 M: b1 O+ M6 r: n# B  f. M' E$ }4 C6 w
}9 g) Y/ m: Z/ ?/ u% o' z: D7 y
void LinkSQL::OpenSQL()
0 Z/ g" q& d: [- n$ i{) o4 M8 P5 c% @) @& M
        try            
1 C* B0 P* {  N3 c: z+ f% h& u        {               
6 O- i- C2 w" R       
4 l6 d) p3 ^" E1 X                /*打开数据库“SQLServer” */               8 _6 X( P) X; b! }2 M
                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  ! \+ j! Y: K& C% t; R" h
                    
' y7 i8 e8 a4 K( h  q        }   
" d' Q( r/ [/ j: U# x3 i' D3 R        caTCh (_com_error &e)            
3 Y6 m1 H3 t" ?4 D4 X' m        {               
; B9 N: L6 x2 j  K+ i                 
# K) s- i0 h7 m0 \" ~                ss<<e.ErrorMessage();     
& r" }  l2 ]* e# s2 B& Q3 u                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
2 ~6 i' D' O8 [- o; N7 ]/ h7 o% |4 c                ss.str("");8 I, \. {2 o& h1 J& P, ]/ a
                            . H' `2 {, s# q6 E
        }            
7 s& I/ M4 |5 C0 [) {/ X  r; Q                         # \, {, F+ @  O. d  |6 X
}$ c4 b8 n# K& ^2 P
void LinkSQL::CloseSQL()
3 B8 u/ o' y, K& K6 S{
! E2 `  i  @& H* H; I        try            
/ m2 M' B1 ]+ O0 |        {                 + p5 [) V9 }+ ~% Z- d& Z

& p* k4 k% C3 F- X' C+ \. D! i                pRst->Close();     //关闭记录集                  + a9 p6 k8 _4 i2 a/ P' @. B
                pMyConnect->Close();//关闭数据库                  
! ^* M4 k: u7 z                pRst.Release();//释放记录集对象指针                  
' K* P0 n% Q4 x1 A% a: r                pMyConnect.Release();//释放连接对象指针   $ E# d6 q3 r, p8 ~8 @- ^8 ^, ^* B; k
        }  
) K6 J" H: n" o  s4 X        catch(_com_error &e)             5 h0 A5 a" I/ o8 ?! b7 v7 E
        {                 
, u; ^- w* q$ L2 U                ss<<e.ErrorMessage();     3 r/ d. S2 H2 B( ]) B1 G7 z
                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
" [- X+ Y# [6 d3 c% ?1 _9 j4 e                ss.str("");          % w4 R; j( M' W
        }                  
% j9 }9 v9 @/ V% S        . Q# O4 R+ J# u3 S
        CoUninitialize(); //释放COM环境   
0 S* e3 M$ V) \% m. N}5 D: I3 l' S5 B" P
void LinkSQL::ShowInformation()
  m$ u5 V" C. t{
% Q  b3 f; E- p6 H. u5 |7 @
! R( f4 n( o1 K, `6 O' B        ListingWindow *thwLW=theSession->ListingWindow();$ P4 @% I, T3 `) b; x* J& C
        thwLW->Open();
) J& |! W/ I# D2 T% i9 ?. B: c9 n3 a4 \, N, W- g
        try
2 }! [$ n2 k) a* R% E+ f, i' z1 y' R        {0 Y9 T& s: w& i6 v, m; |
                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat   
! `" S; m! p* x) a& P$ S1 q        }. E3 S: `7 T! C5 y
        catch(_com_error &e)
5 U4 S% \- f& }, O" v        {
- k- A# n; ?$ z% H4 l% r        0 K! X0 ?: z- k5 k) @9 c
                ss<<e.ErrorMessage();
6 t5 w8 _! Z: p3 B                thwLW->WriteLine(ss.str());
! v$ O1 i6 }# P* X, E                ss.str("");7 E  w8 Y4 X0 d% {1 |7 E
                return;
3 g7 {# Q0 |0 {6 i  {+ n        }
  \; k% l3 j7 |% }) ^; |}
: p# S$ b2 A: x6 _//执行文件
: S7 L& Z. X; K' p# K  l        LinkSQL *theLinkSQL=new LinkSQL;
4 o- D& L- i2 z- h- h        theLinkSQL->OpenSQL();
2 e3 _9 W( |- R  p        theLinkSQL->ShowInformation();' A2 u  C, V. j2 L
        theLinkSQL->CloseSQL();( i& F7 J$ i7 i, d+ h! R
        delete theLinkSQL;1 R; ?0 d( K' `) s& p$ F
5 K0 h  b8 Y. E3 C
哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了