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

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件( `2 ]" O/ {( O, e
#pragma once. Q1 m3 h( O! {8 v7 `% \
#include "iostream"     ' o( M4 j/ O8 }8 M; o* C$ C: N
#include "string"     ( M* K. y& P; ]: P% G' _# Y
#include "vector"     
9 c# p5 p1 \  G$ S- B
9 _3 Y6 L8 u3 N; U3 W: w//添加对ADO的支持   
2 }( h) L! X% v2 P$ f2 k/ X; F* I#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 7 O* {. P5 j3 R0 w5 y- |
#include <NXOpen\Session.hxx>2 p) q  h/ [& f) O* c

& P* F; ^: u* e2 x& X+ a$ q& ~#include "uf.h"$ D5 e" t* F9 w* F
#include "uf_ui.h"% `0 i; ?. p& [+ u  z
#include <NXOpen/UI.hxx>% K3 `- ^" c. L* ^" n% C
#include <NXOpen/NXMessageBox.hxx>8 ?$ g8 l2 ]7 X8 J/ O7 G
#include <sstream>
3 I  w$ Q/ G$ O" |( f#include <NXOpen/ListingWindow.hxx># r" f# S: ^/ l; n1 R
using namespace NXOpen;
! ~* _" U# [* j6 {: L7 [using namespace std;
6 a  ?1 \2 w$ u' z- x9 c3 ~+ A* Q  qclass LinkSQL
. X- [, T1 X- g/ N- l7 `' ~! t{
! A6 |, A1 \. L6 g8 y' ]0 b1 i- y, epublic:
% Q9 Y9 z  M- b6 `2 D        LinkSQL(void);* Z; Q. E' i$ y
        ~LinkSQL(void);
: @! A4 _$ I; ~9 i8 J) {0 A5 N# _        void OpenSQL();( \- m: y; q) ]1 X' k2 r
        void ShowInformation();" n0 U/ D7 X  {$ [" Z! e
        void CloseSQL();
" K) q7 R* ^# U- v1 ^private:; q- Z' \$ Z$ U1 O& {7 d. ]8 o
        Session *theSession;
6 o' ]7 t1 \2 S" M: t9 o' t        UI *theUI;$ Y( J; }9 f  n1 I, a
        _ConnectionPtr pMyConnect;
4 v; Z1 J2 Z$ {; Q6 [$ n        _RecordsetPtr pRst; # K* s% ?1 \, U& o
        stringstream ss;6 D+ D: L+ l, w9 `- S( q
};
5 Q1 \) }( N6 G, L( Q6 [* Z4 K* ^$ c* ?
LinkSQL:inkSQL(void)1 p7 i# G  _5 k* j" e; [5 l
{1 p  z8 Q6 a) O8 C  e. p% n
        CoInitialize(NULL); //初始化COM环境              & o. Z/ F, Q# O. u. o8 a
        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象    . l- S( X& r, j; U3 I& G3 M
        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  
& b# r0 U; l7 p6 z        theSession=Session::GetSession();
: j% X! p( f' o- C( u        theUI=UI::GetUI();& b/ c! [- ~6 n3 R9 P8 P6 }! z* B
}8 I/ v1 X7 \3 d2 K
0 H/ E- U8 Y1 ~2 d  Z
/ A3 t( O6 h0 ^7 _3 w
LinkSQL::~LinkSQL(void)
/ N/ j& W+ C# m) ~{
' v' l( W! l1 w$ ~5 Q) I}
7 r2 k4 [4 W1 C, kvoid LinkSQL::OpenSQL()
0 z; T) t  {; l6 a. v{, x% u8 [2 x( b
        try             & E/ @6 E" M* Q6 \+ Y" c6 q  [' o
        {                1 \% h+ }, e" J5 U" Q0 D, q
       
5 X4 E$ t' k) Q9 k                /*打开数据库“SQLServer” */               & E) p: j! c8 h. P
                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  
0 o3 d( g% B: [% S                    
+ @9 T. [. ^/ j8 \; a        }   
' g9 E# k1 k/ a: M; a        caTCh (_com_error &e)             & m5 ~- q) ]* I( e
        {                + @- J, `$ T- h7 ~; n0 |
                 " Z6 t( U( e. i! b( D9 ^3 y
                ss<<e.ErrorMessage();     
: C* W$ Z: Y3 i7 ^- y* x                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());9 }3 Y' w! S: T: @. Z' ^, ?3 u
                ss.str("");
; r% |; o& G3 ^                            6 e* p7 T; r# b5 l* C" q" r
        }            
- P* ]( Q$ n3 J* O5 C1 K2 v# X                         1 u6 A9 F/ c) b+ M
}
2 H# x: d1 y5 q4 L# _! d0 ^4 vvoid LinkSQL::CloseSQL()) n- W8 c' G1 G/ e7 A4 @
{+ _4 }; J8 q& b
        try             ; u. q1 B! b9 U" ?0 k/ S0 x/ [/ D1 h
        {                 ; B: q* `' ?: L3 |4 i$ k
+ i5 F6 j, z# J* |; X+ D* W; G
                pRst->Close();     //关闭记录集                  
* w# z& \2 ]9 q+ N3 r+ I                pMyConnect->Close();//关闭数据库                  9 V; B' G1 J+ f$ Y/ T
                pRst.Release();//释放记录集对象指针                  
& }6 K6 k% e& p* b                pMyConnect.Release();//释放连接对象指针   
& z+ W' U0 K5 H  v        }  
$ _& b3 k- V) D: _        catch(_com_error &e)            
% U3 K3 w* ?3 U" l$ r. w: k( S        {                 % s1 O) S7 d0 O# r2 P/ n
                ss<<e.ErrorMessage();     
( w# a" _6 U3 ^/ L# e1 @                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
, l9 ?4 m0 r7 v- L1 z: h" |( W                ss.str("");         
9 e, s" {& [* W4 x% R$ v        }                   + Q, ~- @. F3 v  b/ _' u
       
$ \+ A7 J$ o1 q2 d% ?        CoUninitialize(); //释放COM环境   
1 L  N% l+ f) c}
: l( n& ^2 S" d& A* g3 tvoid LinkSQL::ShowInformation()( D' Z: x  e; \9 |, V' N* J
{' f: L2 e$ |# H1 X9 @' h3 B

+ f5 s& |- |" ^4 J        ListingWindow *thwLW=theSession->ListingWindow();
/ B' s9 _2 Y0 S. l/ G6 V        thwLW->Open();9 p# }% Q: H- A; R$ S- |
# ?) H+ N, s# ~$ d& p1 H
        try
* e4 [" s6 H$ K3 t: R, h        {/ V+ x/ {2 s. R  U9 [
                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat   
, ~  M; K* X% C* q& M        }
) ^9 H/ s; V( j  G0 Y# T        catch(_com_error &e)4 j4 p9 ~) A% m* p, x% \5 a! _
        {5 Z# \: T7 `3 l$ W. \
       
- e* t% ]! H# M; T                ss<<e.ErrorMessage();2 G2 [: `5 B0 i4 X# i
                thwLW->WriteLine(ss.str());
1 A4 k' p) C9 o3 }8 P( x: ?                ss.str("");7 y; R+ n" V. u9 U) l
                return;& @9 @5 @. o) m8 u% h) `! T! N! S1 f
        }
9 Z7 ?5 ?! K* W  @/ W, t4 e% G$ R. c}' r* B" E) e! W1 {' C1 T2 k- D
//执行文件+ y) v# [8 n" k
        LinkSQL *theLinkSQL=new LinkSQL;) O% X3 C5 y- L/ G5 f1 O
        theLinkSQL->OpenSQL();; y$ a2 N+ ^3 {; v5 n) @- A# M& h
        theLinkSQL->ShowInformation();
) V3 H+ P. r: z4 O        theLinkSQL->CloseSQL();
7 E3 `) `# C. Q$ }7 g; C1 G/ P        delete theLinkSQL;1 h3 ~* |/ S1 h8 `$ y
" z! Y6 _1 u. G1 w. j
哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了