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

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件
5 F- H4 a, \' x4 v; E#pragma once% m9 T0 U9 z4 k  d
#include "iostream"     
0 \& m8 E( ~. e! [8 u5 @8 O: ~, ?0 \#include "string"     
7 z: h+ i: Z' v. @#include "vector"     ( y7 \$ y2 m1 g5 k

  n0 V4 ]8 {' g3 \$ }4 v//添加对ADO的支持   
2 a. k+ {; b5 O7 F; s8 u! A#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 7 M! P& f  P: H  [4 U
#include <NXOpen\Session.hxx>
8 F8 Q1 R0 N" D8 ^8 r! F' J0 S- l& M2 m( s9 I
#include "uf.h"+ U8 u/ Q! Y( C9 q6 x$ ]4 T4 i6 ~' Q
#include "uf_ui.h"& S5 ~6 Z' C# c# N  s2 e
#include <NXOpen/UI.hxx>
' k  l0 C; e$ Q" {: W#include <NXOpen/NXMessageBox.hxx>" M5 H4 G+ I0 H8 s- r, E% \
#include <sstream>
4 F- ]! d/ b" d% c, {#include <NXOpen/ListingWindow.hxx>2 N6 m; x: a' b
using namespace NXOpen;
8 L/ z# V" {4 l) m- `/ h, vusing namespace std;% X! Y; e! h8 N5 w5 W* j) G3 n
class LinkSQL
+ d8 M, G8 K! T2 j- w2 p+ s2 _{
# r- X1 I- M; X' C" bpublic:, N/ t4 `4 [% i3 T$ g
        LinkSQL(void);, X0 `' v; A; s9 V
        ~LinkSQL(void);
- f+ ^2 H( j9 t  k6 V( f% {  i2 O2 o        void OpenSQL();: e. o% j2 u- |4 u+ ]
        void ShowInformation();- u  u# ]. u* l" f. K
        void CloseSQL();
4 e; X' ~5 h* P+ V# mprivate:
0 n: U9 l6 E1 ~# ?) i* f& h% D  b        Session *theSession;/ ^1 o+ d7 `3 O1 F' W. _
        UI *theUI;% R/ Z" f# {( C) D6 m' {' n
        _ConnectionPtr pMyConnect;7 @7 `9 {4 a& R  j9 q( j6 f
        _RecordsetPtr pRst; * Q1 u7 K) L" z( |' O' w9 i
        stringstream ss;( D) P, G5 f- X1 D  u
};
( S8 n* a$ Z" J7 A/ V0 x- I( E
1 E* ^" {9 u  iLinkSQL:inkSQL(void)& ?! \' Y9 h3 r8 M$ @# o$ O( ~1 s
{+ Z1 B0 M0 g( C
        CoInitialize(NULL); //初始化COM环境              
$ [, D" j# q8 s$ d4 c        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象   
% Z$ K, L8 d3 W, O2 e3 s        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  ( M- s) y! E) d7 u6 F8 _+ ]
        theSession=Session::GetSession();& Q& ^4 @  y& u9 |8 Q" i% [7 M
        theUI=UI::GetUI();8 Y2 r+ D7 m$ N( w* [
}
, e" c: E8 t8 ~% w+ e3 c+ j, i& P, z
" a) G- r) C4 m
LinkSQL::~LinkSQL(void)
- w7 F' |! d! A, T+ V{
( Q' X" X5 G! F! d, ]; c( y4 q}* y7 o7 ?2 Y  c' k& B0 v  a
void LinkSQL::OpenSQL()
% h7 w2 J7 T! F6 o9 I{
7 |: H% X7 g9 ]1 |6 S7 V9 E9 p        try             6 V5 _1 G) \7 P% ~
        {               
( D) V: a9 ^5 @( X8 u# m       
+ k3 r6 L8 P1 j' j                /*打开数据库“SQLServer” */               
+ Z: E. r* i# ^) @, N: i                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  & n! |* S* C+ {
                    $ @0 ?5 k! J0 }; T1 T
        }   
0 t4 l5 M, R5 G, L& E  n        caTCh (_com_error &e)            
  m3 I8 |6 w# N* R        {                3 S7 v) M$ W0 a% `* k
                 % u* S% {, t# j5 H; m9 i1 q- M4 `
                ss<<e.ErrorMessage();     
- A9 B1 e( J" S# }                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
: L, Z' U6 Z% K$ G$ y  D$ C                ss.str("");2 h& @  v( [' H
                           
. c5 w: O4 p- d8 Y        }             6 v- b1 }, H+ n$ q
                         ; [; ]1 E/ f5 P, i* U! G* }
}  U: C7 u4 r4 D3 P  s
void LinkSQL::CloseSQL()0 i6 `' T2 x% D$ ?; ^3 J4 l+ c
{
! V0 Q8 y0 u1 `; y& x        try            
$ D2 O( H( _: m4 o' u1 p        {                 9 u& [7 ^/ C, @2 ]+ V% F9 R

; ~+ {7 t# ~# R6 ?  w                pRst->Close();     //关闭记录集                  
" |! w7 y- y' G! P( U, ?7 g                pMyConnect->Close();//关闭数据库                  3 Y/ v8 ]9 {9 ]( z) M& z
                pRst.Release();//释放记录集对象指针                  
( l$ W# a( Q# `6 R3 E3 t                pMyConnect.Release();//释放连接对象指针   7 O0 p9 g6 K. H% J$ W& B: _
        }  3 J1 s$ F! M, l# S, z: O) K5 d/ d
        catch(_com_error &e)            
+ g* g" V- f1 K7 p4 I        {                 
- e- E& d6 I( T                ss<<e.ErrorMessage();     
& c! r9 s) C5 U$ g                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());' N" O3 v. {0 x' R: T! f% j
                ss.str("");         
$ P; W/ ~) i0 d+ w2 N        }                   . M, d/ S% A7 d, O9 ^. M7 `
       
6 H9 Y4 {5 _$ I5 x( F# p5 P        CoUninitialize(); //释放COM环境   ! y  i# O' ^3 `! _5 Z  l
}0 R: E0 r/ x, o- g4 F1 V4 }
void LinkSQL::ShowInformation()
( s5 u  ~7 R) G) y{% |1 @  S) q: A
( C1 ?9 M/ A% e- i
        ListingWindow *thwLW=theSession->ListingWindow();
. I- a6 b2 N$ t& j1 |0 Y. s1 h        thwLW->Open();
* R% X- Q/ H2 D+ N- E: L/ b' i& R4 J3 Z9 B4 c
        try0 c2 ]) @+ y. M9 H
        {
$ V6 I2 u! W" ?8 ^/ r6 Q! N6 F                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat    ( ?- W. w  Z) X% ~9 c1 A$ }6 }& q
        }# `/ Y2 t3 p& A
        catch(_com_error &e)
7 K% F+ b3 {" ]; d& L) @        {
" X( a6 y! u$ s* K1 M          s/ c% u+ Y( T# p& U
                ss<<e.ErrorMessage();
0 o, d8 F3 j  p* Z( q7 `                thwLW->WriteLine(ss.str());
& e8 i1 \" Q$ X5 ?' a' N1 D- b( l                ss.str("");
* c! b7 ]( z/ q9 i+ u                return;! J) I/ N& P/ u2 |# R
        }! ]/ d% Z1 k- F9 d
}
. r- h' I5 [9 \9 }) x//执行文件
. Z7 J/ i: o( C0 ~        LinkSQL *theLinkSQL=new LinkSQL;
  C: {6 `% Z# n; u1 `; F) B" O        theLinkSQL->OpenSQL();7 i8 |, U, X( _; J5 w
        theLinkSQL->ShowInformation();! S% k: F) k0 q4 O
        theLinkSQL->CloseSQL();5 O* ^- z2 S# n* X6 M2 }
        delete theLinkSQL;
8 t! u, T4 m5 N' x
$ |) C  x$ Y1 v( C3 s! S哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了