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

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件
. c  w7 T8 T. A, a#pragma once/ W$ I3 {3 |0 s( c. Q/ ]- e
#include "iostream"     
5 `2 f. C9 A8 }$ S. V#include "string"     9 t7 B* K& v3 x8 ^  ~3 D- P7 y6 L
#include "vector"     7 Y/ `! d! o3 V; E2 i6 y
- `, |( \- g$ J' D; G1 o7 J
//添加对ADO的支持   
" I4 h+ \8 I# `8 L5 o  d; U# n#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
' ]: A' O/ S1 V1 H, @7 S#include <NXOpen\Session.hxx>  i* ^: r9 y5 z/ X& P; y

! A  I5 p( S( M0 Z#include "uf.h"* a5 P! p3 W+ D9 I1 H, k6 y
#include "uf_ui.h"- J( y# S, i- O
#include <NXOpen/UI.hxx>+ n9 O& O  @, c3 s( Q& M* R+ ^
#include <NXOpen/NXMessageBox.hxx>1 {0 |9 j8 J4 F2 ~6 d6 j  @! h
#include <sstream>) O) R$ J  R6 p, [5 D
#include <NXOpen/ListingWindow.hxx>
2 y- `2 m; ?9 f/ m$ T6 x* o: j& Pusing namespace NXOpen;; B: N8 v/ H) {! P" u% @5 Z
using namespace std;% g6 J$ {8 {3 A5 ~( `
class LinkSQL
- ]  w' [7 f% O0 }* k) A: u8 v{. ?1 J- p& z9 [+ j3 T
public:
  w6 }1 P6 o2 W# {        LinkSQL(void);
% b8 `9 y5 V0 |+ D9 z! d        ~LinkSQL(void);
" g/ v' o: J# A$ N$ D, h8 D9 l        void OpenSQL();
* h. Z  t0 m, t. P* ?- [        void ShowInformation();
0 b, X* J+ l2 H" l' o        void CloseSQL();+ x. j$ w; C7 d# g* j1 x- E( H
private:
2 V# z3 d- }# B+ @6 d' {9 }        Session *theSession;
# `: S$ g; q- l: u2 t$ ?/ c        UI *theUI;
+ O+ B  r! ]! u( _        _ConnectionPtr pMyConnect;
  Y' o+ B6 r9 ^. a0 i$ c        _RecordsetPtr pRst; # d5 x$ Q9 H2 P1 R- k
        stringstream ss;. o$ V. L0 \9 s8 l* k2 S$ {
};
6 j2 B# P0 f& {2 @- t6 g3 u! x, Q6 X6 ?) D+ ~8 F
LinkSQL:inkSQL(void)
8 h0 X6 Q# e# n) f# H* N{# A  P, m, Z! W0 x
        CoInitialize(NULL); //初始化COM环境              
' I% ~1 S$ H! @        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象    / X+ S- j& V' W$ n- [" R" H: s
        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  - I5 G+ D. F4 U! n0 w
        theSession=Session::GetSession();
1 G) }, L9 P' b$ D; i& _. @& \! q) m        theUI=UI::GetUI();  S# w; ~1 J7 b0 h
}
& g3 X3 Z( G- V% t( K* J$ j3 X& M$ a* K
# M, [) I) _, O. K
LinkSQL::~LinkSQL(void)
! ]2 t  d9 F8 r{( J2 Z" f2 _5 G& b4 ~
}5 u* ?3 F) r" f7 L8 @
void LinkSQL::OpenSQL()
6 ~! @% q* K! b+ z: E  a{$ V& u; J9 |! v# I7 \# C
        try            
) t* F( P& Y5 b8 }$ f        {               
* j$ D8 v7 O6 Z3 t( V6 t; k       
0 F9 a* b, g0 e5 y                /*打开数据库“SQLServer” */               
4 ?- J4 |7 I) X                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  ! Y6 \7 U1 s7 f  ?% p
                    + k6 }( _+ h; n0 j
        }   
3 x4 X* D% x* `8 ?" ^2 S        caTCh (_com_error &e)            
" O( j* t7 U; A% K6 n# h        {               
' X3 m* o5 ]1 \5 P% H                 
5 e' y2 m# U0 u% ?                ss<<e.ErrorMessage();     
/ y( ]8 K$ k9 l  D, I                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
2 b3 e% \3 M3 P" h                ss.str("");; ?6 O% n) T* o# `
                           
0 n+ z! @$ L4 h5 `        }            
: u' g0 c- Q8 }3 V5 z3 u; R" L                         6 W3 S' R, b( P$ H
}! W8 A: m# y$ K. f' `
void LinkSQL::CloseSQL(). E. T* S8 q" l6 t
{9 b3 {, V3 }* l
        try            
  X0 q. @6 O1 t6 S        {                 9 P! U6 I8 X$ Z! `5 I$ _4 A

( f$ c5 p* `3 c. E# x* Z- W                pRst->Close();     //关闭记录集                  8 F! \7 A: |2 t: H" g4 C
                pMyConnect->Close();//关闭数据库                  
& v  |# i7 j, U2 Q                pRst.Release();//释放记录集对象指针                  6 D* \; e: D3 N* K
                pMyConnect.Release();//释放连接对象指针   * D4 J$ P3 i) \! S' {6 |( l0 N; ?$ V
        }  5 K7 ]1 g0 f0 D* a- U# R
        catch(_com_error &e)            
3 w- m& ]& w7 ~/ W- t4 J% P: ~        {                 
' N1 S, r9 `0 w& i( y4 e  S& c2 D                ss<<e.ErrorMessage();     
( P+ ?  @1 o( U, ]5 i                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());' Y- N9 o+ ~+ H4 j  G2 Z+ q
                ss.str("");            U' c+ [! H* ?9 I2 l8 B, f# d8 O
        }                   3 R0 {* T7 y* C+ b) p: Y
       
/ Z: w7 w* e. G, j. x( {        CoUninitialize(); //释放COM环境   ) |6 g. v" G! O, F
}
* ^# e3 \3 `- m  j: k" }! @+ L9 d# Cvoid LinkSQL::ShowInformation()
) }. }' _' I0 y3 ]7 L) B& v6 M{
2 L+ X- r4 i8 G# Q5 d5 d: Z2 P% h; _5 X* ^0 {9 E
        ListingWindow *thwLW=theSession->ListingWindow();
0 y" {1 d$ v+ h  s1 D        thwLW->Open();
( C4 b0 f7 l: G2 _+ l5 H: A1 T+ ^6 F
        try
" k7 B3 W) E% e# [8 ?; O        {% [7 P+ P! Z; Q# ^  f- X2 c
                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat    + v$ Z! Q) c' m! _$ M
        }) |, R7 d! U8 n( h$ I$ g6 x
        catch(_com_error &e). h" C$ L5 a8 s/ K. E% e; r" w
        {. R# v% |" U  q) [" \
        7 p# e3 ?5 W: W
                ss<<e.ErrorMessage();
4 u7 v8 S, W1 |8 P                thwLW->WriteLine(ss.str());& E1 k; m6 l. ^' v- s
                ss.str("");
* j! o. F8 m! T$ G6 c: w7 ~' s( j                return;
" k- u4 R4 d5 u2 B  a        }; V* y$ H3 G+ n+ z, p5 R: L/ X
}. Q* s. E* G, s4 {" A
//执行文件$ {5 I0 {4 b' M. H5 a) H
        LinkSQL *theLinkSQL=new LinkSQL;
* |, C7 z; X; W) d        theLinkSQL->OpenSQL();6 n- n$ j; L' o6 }( R5 I/ ~
        theLinkSQL->ShowInformation();
$ b6 M* s0 j) P1 [0 [        theLinkSQL->CloseSQL();
# D1 o! U/ a$ B. i$ `/ C        delete theLinkSQL;- U& q; \  n# p  ]7 v( p6 [
6 R; e8 V8 t  N# w; R8 ]( e4 d
哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了