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

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件, o8 D, b8 ], H+ ~& c  |
#pragma once
" N1 o: s5 b. `% n#include "iostream"     
! V9 W9 g/ c; `& E. O#include "string"     
0 [& y  _, A, A' K#include "vector"     
+ W% S+ R/ I# I- \; b3 A' l+ s! }. T' j: Y8 x* E
//添加对ADO的支持   0 g+ D4 s1 C: s+ D4 k4 R/ z/ y
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
( w6 G0 L4 O5 k% c#include <NXOpen\Session.hxx>
% {8 Q) u: n  x* ^0 @* h- l- f  G
#include "uf.h"
# H' R1 |- G6 |6 @8 A, Y#include "uf_ui.h"& d9 {2 B- `; i  k& r7 j0 N/ r
#include <NXOpen/UI.hxx>' S  {7 G$ i1 b  e( D6 u, ]
#include <NXOpen/NXMessageBox.hxx>1 {5 U; C& D, q" R& ~# U% m9 W
#include <sstream>
& t1 N6 Z7 }* D3 ?8 @" s: ~1 y#include <NXOpen/ListingWindow.hxx>+ [0 Y1 d, I8 F2 v& \
using namespace NXOpen;; n; l1 Y; A0 S# ^, d0 W3 A) K
using namespace std;
& p2 u3 r1 N( Q- ^class LinkSQL
0 v& B2 ^5 Z! g0 r+ o% |{
/ u+ p2 o7 L# ~. q. y9 ]public:5 n0 @$ x4 G$ M/ M
        LinkSQL(void);9 S( Q; ^( R3 ^% i& M! k
        ~LinkSQL(void);( w* L7 k% @1 q# P0 s! T
        void OpenSQL();& C0 @& e1 t+ k) a% [' [& N2 I
        void ShowInformation();9 V0 ^& R$ H6 n* L. m' c+ e8 A0 Z
        void CloseSQL();
& F1 J6 s3 _0 s) v2 Sprivate:
- s6 |1 S( g5 |% a8 B        Session *theSession;0 N: L& X- z, ^( ]0 ^: V
        UI *theUI;" F. \2 W( h# f- }% D( G
        _ConnectionPtr pMyConnect;2 d, w, ^: ?8 Q  u: l+ p
        _RecordsetPtr pRst;
; z8 N/ d# g! g/ S# g        stringstream ss;4 A; V1 v/ H3 y& }* d5 I; _
};( R: S$ ?) ~) d$ s. R/ Z( {# x! e
! M' l9 s/ R; d; w% R# X4 n
LinkSQL:inkSQL(void)# M- b2 u, S" V' ]) G
{
6 Z6 g1 C) v) _6 ?1 Z        CoInitialize(NULL); //初始化COM环境              & h4 k- d2 F. q1 F8 N& x) t7 N0 s
        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象   
2 v  H: b0 u- }; U1 |        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  7 U; ]( z" `3 S# R, n0 Y! N
        theSession=Session::GetSession();0 A$ s' `9 b0 r2 A0 \( _* f9 |
        theUI=UI::GetUI();/ o: N+ x2 X; H. \
}% S* g$ |9 a+ O0 ]4 m! R5 o
: J; M% G6 I3 S/ e- H% ?; q

' B# P' @6 _3 j9 F" X+ HLinkSQL::~LinkSQL(void)7 j" o, p; @# P
{
% c+ C; Z: b& y5 T( H; F( ?}
- s& E4 M# F) W2 @  ~& C  A- Pvoid LinkSQL::OpenSQL()
4 z: D7 p+ Y0 Z{: v4 R9 Y( \4 q2 b) r9 R5 b& ^
        try               X( Z% Y$ z7 S# Q0 L& I( X, U& p$ N/ T
        {                ' @6 n: @6 T0 q: N8 g- h( `# p
        & }3 M) i" g" l( x; x
                /*打开数据库“SQLServer” */               - P, c6 `9 C2 {2 X. e* t) c
                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  % {0 L% M5 X3 f- s! S& W- ~
                    
3 d  G# g. p, W6 y( }: @) l: E& R        }   7 t( g. N/ v8 {( `7 S
        caTCh (_com_error &e)            
. H* o4 ^* D) m: O        {                9 g) b4 Q0 a+ w5 b
                 
$ z, I! I- I' I) f. g                ss<<e.ErrorMessage();     2 T$ Q: S9 J9 W5 Z+ N, ?% l
                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());' q2 A5 e: f" L2 O' g
                ss.str("");+ j) D" U6 }7 y) V9 U/ u9 P
                           
9 ^8 m4 V3 n/ r$ f2 L        }            
3 @5 B4 G! C# [                         
- a" x. z$ C& }1 m: F$ z" N}
& W8 h  s" w4 b0 Fvoid LinkSQL::CloseSQL(). C& `. Z4 v) z( h3 q, X  J
{
, N" i/ @0 q6 v# k3 A8 [# D' M        try            
* d6 D6 T( f% `/ O3 a# e$ q4 J+ {        {                 
) o3 x( l, t. b, G
2 ~! Z/ G+ S3 H                pRst->Close();     //关闭记录集                  7 @/ c- {' O1 h5 T8 B$ r7 r
                pMyConnect->Close();//关闭数据库                  
* u- T) O  l9 [7 X9 Y5 r                pRst.Release();//释放记录集对象指针                  
7 O. J# P; D3 V; z                pMyConnect.Release();//释放连接对象指针   
6 {4 p! j2 v/ `7 n        }  
* l& a& d9 i" A* G        catch(_com_error &e)            
# g" @! d3 l% |$ p- s" R' |        {                 
/ Z) ?6 Y4 Y6 z1 U  e8 ~9 Y                ss<<e.ErrorMessage();     
& T. O. X$ W8 X4 ^* N, O                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
1 C5 D; M+ _) e0 e$ R4 W: `% |                ss.str("");          # k# x9 S8 f6 G3 k/ p9 f! k2 M  _
        }                  
" F' W) b0 T: A* u          c+ W" e- \  t
        CoUninitialize(); //释放COM环境   9 l/ n- E3 H) z& D! ]- \5 m5 w- {
}1 Z9 o; k2 u6 Q, z+ b* |5 w- Q
void LinkSQL::ShowInformation()1 C! K5 P4 M9 X6 P: B0 T
{
! U7 n# a2 k  l/ G) c' ?( C& U5 d- D) _! n1 O9 G) a
        ListingWindow *thwLW=theSession->ListingWindow();
. k2 y0 m9 x& w/ W2 I2 u' ]        thwLW->Open();
% @( r/ G! D( m5 U# E7 ?. H0 [- u) D: }9 ]# w8 e2 R! N- {2 n. N
        try# B" E+ Y: F+ ]5 G  d; B
        {, q4 [' w8 d) G) z7 t! b
                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat    ) E, y$ @! }: Q% s; v0 R
        }# i2 y( `. [. G0 ]
        catch(_com_error &e)
' o( L" f- b. W( ], ]! P        {
5 s' X9 g  C. s. b' B        % Q3 ~, v/ Y( U1 k( |6 x5 a
                ss<<e.ErrorMessage();1 A. t2 a. i) M  O
                thwLW->WriteLine(ss.str());$ L; R# Q2 g1 ~+ H
                ss.str("");
( L' d' v3 d0 I6 X; W9 H9 ~) X                return;7 i" G- P8 c- [" J: }  Y! I0 Z: v
        }
' u7 v! d0 J% l8 ^8 g$ n}
- Y  }; V& b* f) q: ]. N//执行文件' C+ c' V' w) Q! a2 T7 n7 ?
        LinkSQL *theLinkSQL=new LinkSQL;2 o# J9 k0 `& m# _) {3 |# G9 `
        theLinkSQL->OpenSQL();. r0 v9 S0 g  ]2 K& Y7 d6 z
        theLinkSQL->ShowInformation();* Y% Q! i6 A$ B/ J" t- h: `
        theLinkSQL->CloseSQL();) ]6 \- R2 c' ]* s9 D' G
        delete theLinkSQL;
: z6 `- w' S4 [$ S8 E
9 n, d" i' d2 U( v% {哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了