PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

[求助] C++用ADO连接SQL数据库出错

[复制链接]

2014-10-17 08:11:57 2763 0

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件* M" b4 L' ~/ d1 }% m0 ?' v5 M
#pragma once; ~# }: n8 I0 h4 Z, C
#include "iostream"     
" M1 `! Z* ~- y8 l#include "string"     
3 F8 g# Y2 |1 G& o: N#include "vector"     , n% w2 O8 j$ U, d
$ D' |5 ]7 y+ b; U. P% b
//添加对ADO的支持   
) E* R: {# X( ^8 V$ b7 V( a3 s#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 7 |& j, w. @. K" d
#include <NXOpen\Session.hxx>
' ^" _0 c5 H' o; s8 S' d
! A* L+ E+ e0 N. o# Q! F0 B' \#include "uf.h"
, V& s4 Z' h4 l8 r#include "uf_ui.h"
% G! A7 i- ?, b2 @. [, n" S#include <NXOpen/UI.hxx>
4 R/ Z2 i; P6 b. x#include <NXOpen/NXMessageBox.hxx>
& ]9 L* ?" Y+ z3 z9 R! t* g#include <sstream>
! Q9 \0 N2 C7 l  a#include <NXOpen/ListingWindow.hxx>
, y, g. Y* B: j* V: e" xusing namespace NXOpen;
, J; e( n9 g# C$ p4 b1 nusing namespace std;
3 |2 o0 U5 r9 Tclass LinkSQL8 L' Y6 D' o  x
{6 E! E, G0 S: H( j; B4 K& f
public:) Q% j4 k  S0 `7 u; q; m# U3 j# @
        LinkSQL(void);- `' r3 j. M  N* u% V- W
        ~LinkSQL(void);# s& m0 @. T; D- D. K) x( [% v
        void OpenSQL();7 w# L# ?  U& D( n7 b, l
        void ShowInformation();
/ p& D2 m: L; r7 ~& N" X: S        void CloseSQL();4 A7 N- g5 a& J
private:
  E- Y) D' [6 l+ u+ ]& e        Session *theSession;
, p' i6 D" f/ d% T        UI *theUI;+ O1 h7 K# w8 G& e$ Z
        _ConnectionPtr pMyConnect;
! l: Z  O# `$ ?# X1 ?9 w: l) i$ P        _RecordsetPtr pRst; ) q1 T: R' b; I; c' {. H
        stringstream ss;0 r5 ^7 i& C( C* {9 \% z
};
) f; H+ g1 N6 D- M9 `8 I
5 v3 N/ B/ D/ ^* i, d6 z+ sLinkSQL:inkSQL(void). ?6 h4 p* N- R- f* Y
{
, e# y' @$ ~6 g0 L1 k. h        CoInitialize(NULL); //初始化COM环境              6 v5 j$ T/ x) g. f8 R
        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象    # p7 D- V$ {+ F/ M! `8 {; k  R
        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  4 f4 j2 i; P- V# F4 k- V% G
        theSession=Session::GetSession();3 M8 `: I3 X! n* w6 y
        theUI=UI::GetUI();& }8 Q) E0 I# e$ q& z+ T$ C
}
5 r  X" N' m' c4 ?* f3 G0 Y  B" I! A
7 l3 f6 \; D6 ?0 [6 x; K  ]5 l
LinkSQL::~LinkSQL(void)# K9 A* [8 l. n. m0 w2 k6 ?
{
! m% p' g2 i+ r; ~: q/ O}
5 @1 m( B3 i) n8 W% |" `void LinkSQL::OpenSQL()7 V$ S) N6 E* B' N8 Q# m" \# ~2 F: ?
{
7 w0 i# \0 M3 F9 ^3 t* {. ~        try             ; g% V/ U1 N+ J$ @5 a
        {                9 u, c3 q: v. Q+ _- J$ G
       
) Z# c& d9 P, ]2 t                /*打开数据库“SQLServer” */               & }+ E* ]% \& t$ }% i: |  J
                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  / S8 N, F& K  v' w+ q
                    - _, G3 S& [) s5 B2 e. a9 i# M, O
        }   
; b( h( A, y6 n        caTCh (_com_error &e)            
& k/ u5 w4 O& S. {        {                5 U( d& i. Y4 ~& S. J4 Z; b! c4 c5 v
                 
( f7 J# E( K( A) l. d  W" F                ss<<e.ErrorMessage();     
5 |* N( |" X: W( i# q+ g7 u& ], H* X. ~& Z                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
( Y: Q% \3 g8 x, q) \6 @                ss.str("");% j/ x  {+ C3 q0 r
                            * h' \2 o9 a8 S: k/ {
        }               L2 ~5 N9 P8 \3 D7 ~
                         
& a/ k2 q# ^: C; x$ g5 ?}. z! M' J2 U0 }4 ~3 c
void LinkSQL::CloseSQL()
1 a6 w+ B2 R; y4 ]1 i% A$ N{& m% G6 E& ]+ m" O; ~5 ~: @
        try             ! V$ ?3 @4 P$ ^8 t
        {                 % ~  k, x4 P, M6 _/ Z4 k! W& k
. K& m8 l; ]  f2 O- n- c- }
                pRst->Close();     //关闭记录集                  * a% `0 Q2 G1 _" L
                pMyConnect->Close();//关闭数据库                  % ]8 t5 {5 T0 Q) N
                pRst.Release();//释放记录集对象指针                  * z8 |' p3 s2 J/ t  w
                pMyConnect.Release();//释放连接对象指针   
9 }' O0 g; e2 T1 ~        }  8 ]! C& V5 v# L
        catch(_com_error &e)               ~: s1 q" C" ^9 d$ Z' g1 M
        {                 0 {0 C6 }/ t/ P- X# h
                ss<<e.ErrorMessage();     
/ e$ v$ k. o; @5 c                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());+ o2 V% M8 ^* Q9 x) G' q
                ss.str("");         
9 `& q6 N, C. X+ [1 i; U        }                  
( p0 W. V3 E9 ^( I& h% O        ! v5 ?' i4 @4 I( s4 R, |$ [
        CoUninitialize(); //释放COM环境   
' K& ~, l3 B% O8 L( }7 a}
- P" o& K4 u2 a( Ovoid LinkSQL::ShowInformation()
( R3 }* H% z  e' r) J8 ~{3 X. l5 d* _- G$ B$ D0 \
% S9 U* M  J8 ?4 }* ]2 w, W( k0 X
        ListingWindow *thwLW=theSession->ListingWindow();" i) m/ W( I/ y+ J7 B2 P4 D
        thwLW->Open();' Q5 ~. \% ?- Y9 o; W, F0 h3 ^
1 _/ W8 U: a' m0 N. R
        try
9 \! i* r/ k* T: E3 i4 U  R        {% }2 O& ~) H7 e( N$ e  S
                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat   
) m' M. z3 `3 G        }
( w1 q& H; B8 w        catch(_com_error &e)
6 T5 F9 r; T0 a4 ~1 o7 A+ C2 F        {& q, H' V$ ~5 C
       
+ D8 B8 S* s9 P/ h' J. C: s                ss<<e.ErrorMessage();* P  G' M6 d. l
                thwLW->WriteLine(ss.str());% t0 s* V& y$ Y0 p
                ss.str("");
7 Q  D4 W) Z$ J: @                return;# ?  k6 w# Y/ A
        }
* f: p. P0 _7 v. _" L}% n# Q1 ~% a8 h9 N! z
//执行文件& ]1 E' ?1 @. Q& ~  N
        LinkSQL *theLinkSQL=new LinkSQL;
( ?4 F' e) T% r) r: q# j# H        theLinkSQL->OpenSQL();
/ y3 j: ]  n3 y% ^! Q+ @2 G5 I" [        theLinkSQL->ShowInformation();3 ^+ R2 B8 p6 ]7 L8 S" u
        theLinkSQL->CloseSQL();
1 o7 K% N, z* e' E6 @. W* Q" w        delete theLinkSQL;
& L3 A0 C8 ?( t' V
# @3 C4 v' W/ ^9 ^哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了