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

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件
  [7 [6 ]/ n& i4 e  }#pragma once- D, e/ d* u) I2 @6 F
#include "iostream"     7 [$ c, ~3 [: e
#include "string"     
+ K4 c  G& F; @8 o* B! B#include "vector"     5 |' X+ J) k2 _) t) C! e0 M- L
4 ^- x) u' ?  Q
//添加对ADO的支持   0 u1 z& c7 I7 m: C
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 7 J4 ?! N+ e2 i; ^2 H$ ^
#include <NXOpen\Session.hxx>
9 p8 W3 C9 s8 W/ H, K
4 u6 D3 R9 i  p#include "uf.h": M& t1 L, h) g
#include "uf_ui.h"# T5 Q/ B* ]' T* I! T( j" T
#include <NXOpen/UI.hxx>
! S' Z7 U. X' u0 j; P7 m6 t) e#include <NXOpen/NXMessageBox.hxx>
9 d$ Y) s5 D5 |* V0 F! z5 ?9 O! X#include <sstream>0 \1 E0 m! V, Y$ V4 G+ V+ @; a
#include <NXOpen/ListingWindow.hxx>
, V4 r# z1 ]7 E6 o  g/ s4 l' z- Tusing namespace NXOpen;
/ v2 I/ F+ n% `% _, n# n5 `using namespace std;, P6 L6 ], _( \) E) T5 s$ [
class LinkSQL3 [8 r: o3 C6 F2 q1 U
{5 n; t; v% B. K4 x& _4 E" z
public:
) T. i0 D/ R; Y6 B, r& _! u, x        LinkSQL(void);3 C0 q1 P9 u) k
        ~LinkSQL(void);
6 s; q+ I/ V5 M, k  O: o8 l( b: h        void OpenSQL();
0 T0 ^7 M, V& Z9 E% d: o        void ShowInformation();
6 A& d; c: a8 p3 l" W" V7 A5 @        void CloseSQL();
7 H9 Z1 ~1 Y! \3 l$ Y* P0 \! Z/ qprivate:
. R, p5 q) D  U6 \        Session *theSession;
- D" u. z$ |& n8 k        UI *theUI;7 a* a5 `0 @0 V; ^. ~* M( g7 m0 _
        _ConnectionPtr pMyConnect;! m9 `9 F* Y# j. t0 l0 ~- S+ V* g
        _RecordsetPtr pRst;
3 Y' z9 L0 @$ u2 p' E0 K8 Z        stringstream ss;! w9 k  o* t7 e- s" C7 V+ p
};
) E+ H1 P5 v$ p% B
# l0 V; _. Q, W+ S/ D, tLinkSQL:inkSQL(void)
4 D+ ?8 S2 m* C{
, ~) a) @8 L- X8 q& G9 `        CoInitialize(NULL); //初始化COM环境              2 B! w8 `3 Y& n. Q/ n! M0 X
        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象   
& Y4 E- [, v4 P4 r! V        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  
7 y6 A' A) B- F" U        theSession=Session::GetSession();2 l7 p6 l* I* f* d
        theUI=UI::GetUI();
9 a% I; s# Q. y# z4 G+ e}! b: F6 W3 k* ?6 D! d6 m

, n1 }3 n, q( J, e- n+ Q, b* }* }. M
, O! T; t; C4 c) D3 {1 x) C& VLinkSQL::~LinkSQL(void)- Y8 ?4 v2 @+ u; ?% U$ q: p
{2 R  K$ B% H' w  Z# l4 y
}$ B  C% c# m2 n, w% M0 ~1 ?" i1 E
void LinkSQL::OpenSQL()4 u* j. z% V1 `' {3 x6 X$ R
{
; p5 P6 P3 b& ]  q+ f7 B: B        try            
+ O' ]! e$ q% O1 _1 |7 w        {                - b# f- d" u7 H/ t1 V! y$ M
        9 J( i3 r: a1 h% S
                /*打开数据库“SQLServer” */               : D3 |9 k7 S9 l; X5 {' B
                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  6 d8 h9 e  `) Q( r5 a! U
                    ( e$ s2 K4 R/ G1 k$ J. g5 x3 i: \' ~
        }   
9 y. V9 c7 k3 e! D        caTCh (_com_error &e)            
% Z- @% q( ]7 P3 M0 _        {               
- `& _- c. ?. Y5 x' C                 : V0 _' `; H( F: J0 ]
                ss<<e.ErrorMessage();     & M1 B) R+ z7 {) b4 J
                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());% D; L/ s; S! y, C8 ~* g6 x, o
                ss.str("");
: j1 |& y2 S! C1 t7 Z" @# N- }                           
3 X2 r, @& ^1 G; I9 ~' D7 [        }             9 l2 j- R7 J! I  r
                         9 ]% c4 |' T2 N* e4 J6 x/ F+ i+ u
}
5 a- q6 d: l( D8 F3 d1 T7 v& vvoid LinkSQL::CloseSQL(): F6 Z$ Y, R8 _# `
{
6 u( ]. X% p. S) y' z/ K        try             ( {5 h6 D# K8 N* i. G) w; N. u" m
        {                 
6 e3 K* `1 X0 M1 c! c' ^
1 M* B/ v; q/ L/ I# I+ T                pRst->Close();     //关闭记录集                  
; i& F0 D0 ^/ d5 O$ v                pMyConnect->Close();//关闭数据库                  
" Z9 p. o2 U( ]; b9 I                pRst.Release();//释放记录集对象指针                  3 e1 @7 j7 Q/ z6 X  l0 j: p
                pMyConnect.Release();//释放连接对象指针   
! R8 M8 P. t  ]$ B0 Y+ l0 u$ e        }  1 w7 ?) h0 _- [' _) q
        catch(_com_error &e)               z0 `& Q( l% ?6 q5 r+ R
        {                 
8 A$ M* [0 r( l6 }% T( L                ss<<e.ErrorMessage();     7 r$ j' d3 \: p  Q; b
                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());0 @$ U( S4 W( \2 z
                ss.str("");          , T+ Y& ~3 N8 M: j6 J
        }                   , S1 s/ l, K" @  Y
       
# B3 i+ N& Q5 q: q9 M        CoUninitialize(); //释放COM环境   4 j( c/ Y9 y, m6 n. V+ a; V
}
2 ~/ [% J+ R& T8 E9 X+ c# kvoid LinkSQL::ShowInformation()3 i4 ~3 e# ^6 J+ q$ w' j4 I0 S
{
; k7 z& E4 y+ {$ y7 B* J
3 s, c2 ]0 k8 s        ListingWindow *thwLW=theSession->ListingWindow();/ H% E* B+ ^( m' n
        thwLW->Open();* |# j2 E0 B: z9 x2 h

! w. z3 f/ c# J, i        try
  m, F* g) j' s( R        {2 p! N0 B3 V  _; o+ \; I
                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat   
' f; `0 d5 j8 j* t4 g, Y        }7 m! C, ?  i# g: T# j5 U$ ^; s
        catch(_com_error &e)+ O: I$ v4 T( r/ @$ ?
        {3 W. K2 E! s! |% j5 f# O$ y
        " B8 I) \5 V5 ^
                ss<<e.ErrorMessage();' @2 Z. N! {  m- z0 S* b/ e2 l
                thwLW->WriteLine(ss.str());  l- ~% P' N8 A6 ~- m3 |
                ss.str("");
, F$ o$ o0 W$ E2 [                return;
0 U& C2 S5 Q' E/ A  Q( S' t        }
" M5 j- m8 N: n0 i9 l1 z}
6 R; D- [/ a$ u6 n" u5 s//执行文件& k7 {# D6 b5 O, T8 T, M* Y9 `
        LinkSQL *theLinkSQL=new LinkSQL;
# Y" n0 M8 V1 M+ L- \7 q        theLinkSQL->OpenSQL();
0 N3 B( |3 W2 s  f. @' c) g        theLinkSQL->ShowInformation();: h5 o1 w8 h  u7 I: J5 E
        theLinkSQL->CloseSQL();
" N9 M2 a# n0 m# c7 g; X$ ~$ H        delete theLinkSQL;
  m) {  W) d; q: l/ n& A  U# ]. d) V
. C8 f  _1 l+ v- [) }6 d哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了