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

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件3 \- ~7 r3 i- R, s2 R  l
#pragma once
: q6 W0 n7 q% Y; G1 [#include "iostream"     / O. t% d7 r* m5 L+ z
#include "string"     + M+ Z( M) {& i$ C) J
#include "vector"       |: C' y+ k6 T; I

9 n8 F+ Y  M* |//添加对ADO的支持   2 ~: S- C- V. b9 c/ v! A+ z% P  y7 y
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
. J* f0 g7 M5 ?& c5 @0 Q" g#include <NXOpen\Session.hxx>
+ z' ?1 q" M! }. ]5 q, X" i3 r& _) K: N5 v
#include "uf.h"
# W% ?. j; y) `3 O#include "uf_ui.h"
( L1 e8 H2 J3 _1 Q#include <NXOpen/UI.hxx>) F% X' H# y% G  x1 X
#include <NXOpen/NXMessageBox.hxx>: o& p0 Y0 Y1 u( g0 ?$ o
#include <sstream>
, j5 H# l* i9 M& D. t#include <NXOpen/ListingWindow.hxx>2 @) g6 n& y; y
using namespace NXOpen;$ g! u5 ^! z  B4 g# F4 J% F
using namespace std;  S1 h( n0 F0 M; D
class LinkSQL
! {+ c% v# X$ Z9 p8 v, {! r{. O1 W* {! T0 \3 g2 T6 P
public:8 G" y) y# n* d) l
        LinkSQL(void);# H- E$ W6 {3 ~# _
        ~LinkSQL(void);! S. K$ @' u4 ~
        void OpenSQL();* d& o$ I) D" {: P2 H3 e  r" r
        void ShowInformation();+ G6 p" M4 U2 F8 L+ }
        void CloseSQL();
6 g$ y; m" h* l& A# r) h' _( jprivate:" U+ W' _- K4 J9 j
        Session *theSession;: B5 z% ]/ E* y! N
        UI *theUI;
3 l+ w+ U  {; Q        _ConnectionPtr pMyConnect;
! F* m9 O6 e  R2 c# v9 U! }" f* [$ p        _RecordsetPtr pRst;
1 G$ n- |+ ^3 I# g8 \) G        stringstream ss;* ~  K/ k* Y) O) o+ k
};; B2 ~$ i/ D2 q4 @. E5 k
" d. k  q" D& M. I
LinkSQL:inkSQL(void): K1 j; A* |. J/ I9 z  d  l: P- U
{8 i7 b, ?$ @/ c# T+ v" |
        CoInitialize(NULL); //初始化COM环境              
  G0 e7 V5 W  V. e  I( u$ X& c6 ?        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象   
* p, z; f! W9 Y" {) n+ e( u        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  
* O; l4 W8 W6 p+ v4 T        theSession=Session::GetSession();
. ^: b) n8 H; |1 p5 R( m        theUI=UI::GetUI();
" C# u7 C/ l  Y* a* }- `* ]}& U  m  `" y' J! _$ |) g) S2 u
* `/ h9 v! ~# S5 b0 p

' @2 s% ?/ c: h$ a3 E4 S7 RLinkSQL::~LinkSQL(void)
4 Q+ j! v& K# A) q{
2 Y1 z: e/ U1 \: j9 v% t. @" t}
6 p/ L! B) c+ E5 ?1 f& m( evoid LinkSQL::OpenSQL()
9 b+ J7 X) |, l* ?4 k4 W{" B% `6 ^8 H5 V1 T7 B' I
        try             : ^8 B, q0 z! K# f) H2 |. f
        {               
. _. E- B2 |' z* E2 H       
' X$ Q' p0 S7 Q2 L' z( ]                /*打开数据库“SQLServer” */               
& d. T$ _% C2 v4 y" E. _/ d                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  , p! g! e) \3 W; c/ X
                    * f+ {) m8 \; h4 q
        }   
% T3 R5 T  f, m; }        caTCh (_com_error &e)            
9 w) E3 ~' r9 v# x4 z        {               
* c8 C$ S+ i" K/ j, M' }                 
( x0 m$ |% A8 K! c                ss<<e.ErrorMessage();     
7 I1 Q, E8 ^1 s5 Q5 {# L% ?3 E                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());& c2 W7 w4 @4 G
                ss.str("");
' h2 m' E8 u: p- P1 y6 n9 N0 ], H                           
8 p" ?9 P& ?: E8 y, M$ d4 z5 s        }             8 Q1 a% h6 `4 i! Q
                         
' d0 T- I5 L0 N9 H+ x+ U}
7 a- P4 `4 X/ ^% A5 z8 vvoid LinkSQL::CloseSQL(). }# q% v( U1 T& @# t+ h- a5 t
{1 ~+ S- P2 a% v/ F, V% F4 o
        try             4 r# e; |/ L8 h; z( q
        {                 * z/ s8 z2 m! K
6 l" N$ u/ @- n9 r( W' G4 i- u8 U
                pRst->Close();     //关闭记录集                  
9 b9 T+ Q; e3 `: _5 H                pMyConnect->Close();//关闭数据库                  ; d7 I" V5 q7 d* b
                pRst.Release();//释放记录集对象指针                  - g0 R5 q5 n/ M
                pMyConnect.Release();//释放连接对象指针   
( @  m) M8 |& V        }  
7 \& Z: X- a: D  [" `        catch(_com_error &e)             . ?% P! d( G0 ^" F" s
        {                 
' Q) S6 |' E- C- c0 }3 Y( a                ss<<e.ErrorMessage();     
5 _' O5 Y' N- _$ m                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());1 {0 y4 |& R1 o& W0 o1 P
                ss.str("");          1 b$ P- ]0 K3 H& |; ^9 w5 I; m
        }                   1 [# `4 H. n1 {- W& V
        ! M/ Q+ D: i3 ?- i
        CoUninitialize(); //释放COM环境   ( I( i6 X6 q$ }
}6 r7 t' N0 y2 C# _9 H- d
void LinkSQL::ShowInformation()* p% e& ^2 z/ \- M  j0 y5 X
{/ q. b% e( K/ H; E- W% K

! ]3 w0 F! {: \0 M* y        ListingWindow *thwLW=theSession->ListingWindow();/ k, ?8 j5 G$ L  V, w+ n
        thwLW->Open();8 @4 L" b4 n! X1 `
2 Z4 S4 P2 }8 u$ S  o* J
        try
7 Q% b, {" a: I4 X) h# J        {5 H! [7 C! K& x4 t% K: U- X% @2 T
                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat   
1 Q& l! [9 Y: q        }
9 i8 h, k3 |. r. V7 b" G        catch(_com_error &e)
# t+ a+ y- D- f' f4 t# H/ y        {
# \1 S9 G7 [4 L$ o$ x) g, s. ?       
' x. v1 A% W% i# r- d$ }5 K                ss<<e.ErrorMessage();
8 u  X- Q& O  H2 n7 K                thwLW->WriteLine(ss.str());
$ N$ K3 n3 q  _                ss.str("");
, @$ w9 t4 ?% X. G                return;
- B% E: z( N6 E2 j' A        }3 K% O& P; y' V& N3 G8 @8 Z+ Q, _
}
) |% P- c9 l) A1 l//执行文件0 q; Q% C4 C0 s
        LinkSQL *theLinkSQL=new LinkSQL;) ^( X' c/ `6 j. @. [
        theLinkSQL->OpenSQL();
6 a1 T! E2 v2 w7 v        theLinkSQL->ShowInformation();
3 Q. [+ V( @3 b  [" J9 j        theLinkSQL->CloseSQL();
" A! b- R( V" q  q; ]        delete theLinkSQL;% e6 {& ?1 i5 Q' e

  H# G% t" ]8 `2 k% P哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了