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

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件
; B- c4 |4 o' ~! i#pragma once
  B1 k) b: g# N& I#include "iostream"     1 H& R4 ^* e* M. \* n5 w4 p
#include "string"     ( A* [" n" l+ c4 d5 d5 g; `
#include "vector"     
. k9 |. ~8 F$ A8 i; k7 q1 h( D* ^: P* n9 x$ [9 H" Z; i4 s' \
//添加对ADO的支持   9 O* H  [' `. X9 ]6 ^
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 5 i* A1 [) P( g7 r- O' d! v/ j
#include <NXOpen\Session.hxx>
4 J# F3 y5 X% r0 y
9 V6 Q( e9 F- K" _) d& P% }& g4 |/ d#include "uf.h"
+ _  E# n& o( ?! r#include "uf_ui.h"
$ Y& w% d6 W1 k* u; |" M#include <NXOpen/UI.hxx>
( I9 S7 ~$ c1 X0 q) g3 n#include <NXOpen/NXMessageBox.hxx>
5 @. p- d: j- p! o" g#include <sstream>
3 a) d+ f8 u& D4 x# I- }+ @#include <NXOpen/ListingWindow.hxx>
9 N* k( }5 B' O5 a8 Ousing namespace NXOpen;
5 |+ l/ y, Z% s/ C4 \using namespace std;- m2 k8 [3 V% ]7 M& {3 y" ~) p
class LinkSQL' v* i0 n) a. k& d
{0 t' j" v/ b2 r% {  K6 J: X
public:5 ~' K' J' v, x) d8 E0 J2 O; i) L
        LinkSQL(void);6 \! @, H0 V$ I7 s$ }5 p, f
        ~LinkSQL(void);2 c0 o8 t$ m% F5 u. y
        void OpenSQL();* |3 l" g3 H6 S( N2 N
        void ShowInformation();
! b% W: }; ]/ S7 N        void CloseSQL();1 i$ S8 f! I) _; h2 M/ }
private:
* G0 W0 B# n+ ]! u5 d        Session *theSession;
) A( e" M/ I7 z5 R8 J1 P& N        UI *theUI;! ~/ ]% S4 m2 {6 z8 x7 m$ W* m# D
        _ConnectionPtr pMyConnect;6 v0 Y3 V8 e( x( f2 M
        _RecordsetPtr pRst; " m8 a( h+ L0 |) q
        stringstream ss;5 |7 B# M. n% w' \3 g, g. O
};. P: g& B5 @6 a# n' S7 ?  c

$ r! ~0 R4 j5 v; j- L( ~& KLinkSQL:inkSQL(void)3 l4 q' v& h: T6 e5 m: ]: [8 ?
{
& Q1 v4 N8 |$ t5 `2 n- [# V6 `$ G        CoInitialize(NULL); //初始化COM环境              
! l2 i- Y. B6 t* }        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象   
; o; C& R. q  R4 b        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  & [! T5 R) G% b2 L
        theSession=Session::GetSession();2 v2 [7 F* t- A0 B9 C1 `; A
        theUI=UI::GetUI();
( a6 [1 T( {+ R- f* l; n4 t: d}) y( C4 u9 b7 u- O; h/ M

% o0 O2 {% y- N: g. F* t! s4 p# G  G9 F8 ^; l) Y% F) w
LinkSQL::~LinkSQL(void)" P* w& Y$ e6 x# P
{2 Y/ f5 d  u- c5 j# U9 a
}- t. K% r( f6 L" L% d
void LinkSQL::OpenSQL()
: k- t! ]# l4 _{! u8 ?4 E1 h! T. }! ?% K
        try            
! J, L; E$ l- M5 r% @        {                , C: v$ H- q, A- N6 b9 V$ l" V
       
' u' t2 u) P6 g5 }( c0 [, }                /*打开数据库“SQLServer” */               $ k6 l! q1 E- H' j% V! a; Q; W' d
                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  9 X- N: c! G5 Y  L1 T5 j
                    
  {4 o) E# N5 U+ ]/ g        }   9 F# b) F3 W- _
        caTCh (_com_error &e)            
. N4 x2 ]" d# G        {                ; h. D$ E# Q% F/ O. U" M' f: t+ i
                 
: k4 k" J- s" c5 I, W! K; @                ss<<e.ErrorMessage();     - h; ]0 Z$ j3 ]/ X
                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
+ [4 z' c& i+ ?! E6 f! u% X                ss.str("");. y/ H1 K" W) L5 }
                            6 |& P3 J) k* d! u+ a, ?) @3 x8 ^
        }             ; ?, h" `( L/ _/ d8 p) j' L
                         
3 L( n% o+ W# h7 o1 ?}& C; G( K+ R# ?0 ?2 i6 I
void LinkSQL::CloseSQL()
! F/ \, D& N  t" V  F{
' e: ?+ Z' {$ W5 G/ l3 @9 n  j        try            
$ s, |6 X! M, O$ ^        {                 
9 j7 f) i/ u2 v. V8 {2 v/ w" |% O& P! A* ]3 g; ~2 x
                pRst->Close();     //关闭记录集                  ! z2 D# U% r0 f
                pMyConnect->Close();//关闭数据库                  
! P: b8 S0 a' C! l- @3 X- T, X                pRst.Release();//释放记录集对象指针                  
- h2 T' x% ~' I# q& d                pMyConnect.Release();//释放连接对象指针   
: g" h2 W3 d2 w9 g0 J4 o4 {2 K        }  + C" T0 i4 W- e4 d3 ^/ ^
        catch(_com_error &e)             0 R5 \" k8 d; ]) k( X& w3 p# P; G: m
        {                 ! @8 {7 }# n4 k9 N. f, h7 G8 U: W) _
                ss<<e.ErrorMessage();     4 K' A& i% `/ Z  @6 ^. J, x
                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
! U2 z% B; k- H- W7 A% W" D2 N                ss.str("");         
) L/ S- x: ^* k9 i7 G# _4 i        }                   * D; s% c, H) B+ d
       
* u# U8 V7 }. t+ V1 r        CoUninitialize(); //释放COM环境   
* N4 K; l( e2 Q: A}
$ L3 p7 Q% o* h2 y5 ?/ i+ k; |- dvoid LinkSQL::ShowInformation()1 D5 d' g4 k: H) N  s. h
{
7 f8 i) R- s4 @( `9 p$ r/ q% p
4 O6 H7 p! _4 p$ Q        ListingWindow *thwLW=theSession->ListingWindow();
3 b$ m3 O+ b6 m        thwLW->Open();
+ c" z0 x+ [1 x# p2 K
7 S2 A: x5 J) C: Q7 M        try1 j. \+ T4 Z1 m5 W) z
        {. b1 s* p: d: y0 l" Q4 M: I) r
                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat   
0 R8 z$ N: C1 k' M! ^) s5 p        }# i, l8 N9 O" J
        catch(_com_error &e)
1 \7 L0 b- z$ {/ a9 |        {+ J2 E! p( ]' N
       
) I9 x. U8 T! ~" _                ss<<e.ErrorMessage();
5 d5 ]7 ?. {; y                thwLW->WriteLine(ss.str());6 Y) u0 Z4 Y% W8 z
                ss.str("");0 c- `: j5 p6 K# Z; g
                return;. h) j- g5 d; W* H5 B
        }
; X% P  P9 @: g9 G' \4 g}+ j* Q+ }2 @% S! u, L5 S7 h' J+ `
//执行文件
1 E' t0 e" W* l0 G0 E. H# }/ a        LinkSQL *theLinkSQL=new LinkSQL;
  M, H4 G6 N3 J6 R( Q5 }3 {        theLinkSQL->OpenSQL();3 W4 B6 N) f+ y/ [7 q4 A6 ?
        theLinkSQL->ShowInformation();! w& r- s5 Z" s9 g$ u
        theLinkSQL->CloseSQL();% x3 y9 K3 u' N0 ]9 h, O
        delete theLinkSQL;6 ]4 D. y$ J$ e, c' @( S6 A# Q
2 ?: A7 ]8 W1 N$ g) r" ~1 t) l
哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了