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

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件5 g; z: I, q' e; t2 {
#pragma once$ g0 D- y/ a0 ?: n9 n: }$ D
#include "iostream"     
6 ^) z9 S) x/ t7 G6 Q9 Q! B#include "string"     
1 x( U; x0 _& Y6 M5 r! H% x#include "vector"     
; g" @/ m5 K! n
/ u& _$ e0 J: G//添加对ADO的支持   , k- O) Y/ s8 j& w
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") / g$ ^8 S& O4 [$ v; T
#include <NXOpen\Session.hxx>+ r9 N  O/ d5 Y+ y9 r; w) _$ A
2 E* i) x8 N. @
#include "uf.h"
# C6 {  J/ Y6 _; `2 ]  k#include "uf_ui.h") P0 v2 {# F( r- s
#include <NXOpen/UI.hxx>
' S8 J$ X; ?" n4 c: Y* K#include <NXOpen/NXMessageBox.hxx>: H$ F$ M/ k, m! c* U5 \
#include <sstream>
1 s# W  q$ `8 n, e! W' y1 ?#include <NXOpen/ListingWindow.hxx># |2 X  \6 X' e! w( W  k, j
using namespace NXOpen;- I. M- Y7 c9 y: g8 [$ v
using namespace std;- A8 n1 z# N( u% |# ?
class LinkSQL$ ~) Y- v/ }5 `* c1 d- ]# C
{; h6 Z( n4 P. t" T* k' U
public:" I' L+ p. @, k/ d0 u! S: N
        LinkSQL(void);, i; u+ o6 i) d0 ^
        ~LinkSQL(void);
, |4 F8 c/ F% T* T        void OpenSQL();
* H& b0 k- u/ b# Y1 j0 c        void ShowInformation();4 L* D) y, x3 x; t. G% Y2 N
        void CloseSQL();/ \  u* D% {3 _6 F$ w4 w
private:
! F8 M1 T! i/ [        Session *theSession;# B, z, Z% }) V, x+ }% Z+ D2 g
        UI *theUI;
* |) k9 O! W, e9 v5 R* V        _ConnectionPtr pMyConnect;
9 G/ B. l1 _2 t; ^+ f        _RecordsetPtr pRst;
& p! a  e6 [+ n5 f9 t! U9 u& S1 Z        stringstream ss;
2 n7 v4 X+ g" ^# x};% r, A/ X* r6 }

% d' e. N! a- ^" C( \$ iLinkSQL:inkSQL(void)! ^2 A& ]. [. d1 G
{
4 @, h& z! m8 I$ v        CoInitialize(NULL); //初始化COM环境              
5 E% B3 R0 W. q+ N        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象    ! F* h& y" \, x1 Q
        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  
; a; c. Y, |9 C" v        theSession=Session::GetSession();
# X$ Q0 ]1 l% m( i' a( q        theUI=UI::GetUI();2 o& t% M* S* S  f
}% P) j8 K- j% E+ l
" D& f" \9 R! ]' P4 c! {; u! T

! Y/ R6 j% _6 t5 x, d8 w3 R, D% ~LinkSQL::~LinkSQL(void)
, Z0 ?$ W" [( g# }1 ]. v! L{
# ]" ~- V2 e! \) I7 S  r  g}: G: Z3 M8 T" c8 U3 k# F" @' |0 n6 N
void LinkSQL::OpenSQL()
/ a1 S- G. O% ~$ f{
1 }, g7 N% q! @" X* r9 A% w        try            
4 s2 ~- O9 J0 {/ i9 U        {                + w$ Q% b" \% G; f# \
       
8 T7 q) L+ U6 ~& T. }/ ?3 B                /*打开数据库“SQLServer” */               1 F1 {, f7 |8 g3 A  U7 T
                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);    y# i1 I8 s  o( \, B4 V
                    - f* U; p( n1 G% L; i' N
        }   
* M1 |( s. U3 W& t& A4 K/ U1 j/ J        caTCh (_com_error &e)            
8 V4 J+ ~' }6 p( T4 O        {               
( Z: L' i. U: p7 p) g                 
8 Y+ L' c, v5 s                ss<<e.ErrorMessage();     + U2 J  W- n9 F/ O/ d+ O
                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());- H: d- [/ I! [0 F8 x& q) [% [
                ss.str("");# Y9 S0 k' f- G/ E& g5 @! Y
                            # \! f# ?  w" s. e1 v
        }             " k9 X- ~- r% P( I% ]' L
                         6 W% G1 q, O6 p1 p' `
}5 k7 T  v1 m4 U
void LinkSQL::CloseSQL(): s8 m! S+ k7 f
{( x3 \7 l! u6 z. e* Q
        try            
6 o% F  _' B( [$ q  O: G1 K        {                 
# N  t2 G0 H$ i  y  k+ d+ R- C- y/ j
                pRst->Close();     //关闭记录集                  
. N' ~- ^5 O9 J5 Z) n                pMyConnect->Close();//关闭数据库                  * m; X) p! ]. z& F0 P7 V8 I
                pRst.Release();//释放记录集对象指针                  
2 |: L2 r' N" w- _                pMyConnect.Release();//释放连接对象指针   
+ t+ l6 g6 I7 }' l        }  ; m5 X9 l/ C0 B# U9 M  h9 C+ _/ @& D
        catch(_com_error &e)             % z$ _7 Z# C1 H. q
        {                 
) F* p- {5 H( U/ Q) f                ss<<e.ErrorMessage();     $ p/ g& e4 G% l9 W# ^1 R% M
                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());  j! X6 c3 a. r5 f  _6 D
                ss.str("");         
, i/ o; v$ V/ q2 m        }                   5 B* |1 l5 V$ l
       
6 P% J# T; s: j* M        CoUninitialize(); //释放COM环境   
6 }; o' U2 p' |: ~! a! H}
8 S' V; P/ Q$ Ivoid LinkSQL::ShowInformation()
. |8 f4 \4 ]5 W, m- w' W# v' G{' p% I+ Q* [# B3 D" M

- y5 U4 P& m, B+ b9 v8 p        ListingWindow *thwLW=theSession->ListingWindow();
2 n0 k! j' R, \/ l& d( ~        thwLW->Open();
8 T, S6 ~; p4 ~' e8 j$ B& Q- w: l, x# `+ k8 E1 Q% p0 Z# [/ y  N  F
        try% t* n  Q; m  x6 M' Y; G7 G
        {6 z* M1 [; s8 t# g0 A3 w
                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat      W8 T! ?4 r% T5 \! h
        }  L- v8 K$ H5 {5 b' w  q
        catch(_com_error &e)  W' M. a& A% r- ?
        {
9 ?/ z) e& P; S0 |        ; j: O6 U7 {" ]
                ss<<e.ErrorMessage();4 D  @: e- ]5 e, |
                thwLW->WriteLine(ss.str());
; J. {0 _2 G& f3 z# i! d                ss.str("");
  g0 Z& s4 G3 y0 _* I( g# B) D8 f4 M                return;! g2 e4 B0 `7 k  q) [, d
        }
" D/ v& d0 ^5 q+ ~$ d}/ o, ^7 }* N$ {5 A$ F6 L
//执行文件
* R' m" L5 D5 i        LinkSQL *theLinkSQL=new LinkSQL;
3 _/ @* z6 D( s" ?! e        theLinkSQL->OpenSQL();5 h0 v. W" s& I
        theLinkSQL->ShowInformation();& E- b7 D2 v4 w# p" A& Q: b+ Q1 `/ _
        theLinkSQL->CloseSQL();- ?# a3 J' g9 E- n% M/ w, F$ v: i7 [
        delete theLinkSQL;0 x' F, J; J( ?+ C
4 e) u( h8 v5 e% Y( a  m9 \: `
哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了