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

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件5 t* E0 \9 T6 O0 l
#pragma once$ p! C2 i0 w  i1 ~. w; @6 o
#include "iostream"     
% Z  G3 V) `1 |1 z#include "string"     
! A: v# x( E0 _' X  N$ a: j8 ]7 u; @#include "vector"     
) e! ^1 r# k, I9 }
# D3 X6 r$ h% e2 i# Z0 |' {1 J//添加对ADO的支持   2 _! R  h- S; M
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
+ H% Z2 E- @: P5 b4 i8 N#include <NXOpen\Session.hxx>; Q* \9 T0 y: X6 H& h' }1 z7 w

1 X0 J+ ~# h$ n: s3 i" D( Y#include "uf.h"$ q' u+ a" w9 n# b4 M+ ~, r
#include "uf_ui.h"
" X/ W* g# l0 T) p' w#include <NXOpen/UI.hxx>
5 \, w2 Z2 n* [# Y0 I6 ?' u; _#include <NXOpen/NXMessageBox.hxx>
5 w' P5 h$ v# i* q( T" ^- |# S#include <sstream>: X+ e1 c7 W5 |/ f- K' S
#include <NXOpen/ListingWindow.hxx>' Z# v1 K5 _+ E$ p7 y0 X3 j, V
using namespace NXOpen;# W9 a  w4 G; }, o* ~; l
using namespace std;5 ?9 K6 g7 M4 l7 B& J
class LinkSQL# z0 F" S) J! r/ {- G
{
& D7 j4 @( F$ u6 epublic:
$ U9 X# x! y. j, ?% K. a8 G. o        LinkSQL(void);# j$ L. y, }( X
        ~LinkSQL(void);
! ]- U. n" b# \' l% {        void OpenSQL();
7 _' ?* Y0 {) x7 s" S: T1 h        void ShowInformation();0 [- `# h2 L% I3 N5 v! e3 M. ]
        void CloseSQL();
1 i) P* I8 B7 V3 g) }private:7 r5 s+ q' {+ j1 D: G! f
        Session *theSession;
; M6 e. P  Y% d! ^- [( U        UI *theUI;8 q0 ~+ ]0 O0 w( c
        _ConnectionPtr pMyConnect;: m( v4 f. P/ Q
        _RecordsetPtr pRst;
! {# B, T: x. t" y4 |/ m( ^  `$ h        stringstream ss;% o0 X$ A* c# n" ~* a0 t! l
};! W$ R$ j/ ?1 D( w- A4 i

8 \; r: e% {5 k& U! mLinkSQL:inkSQL(void)
6 g/ x. z3 I# S# Z8 @{
% ]; f* A1 l4 ^7 F        CoInitialize(NULL); //初始化COM环境              
" w5 V8 F& A  }+ n        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象   
- ^3 E! q& a3 c9 ^' M0 }        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  
6 l" P- X: y* ^  f3 {5 _        theSession=Session::GetSession();. M7 H( V# H2 R5 y- ^
        theUI=UI::GetUI();
7 D7 r+ {) Z) p3 ]( L5 b; G3 ]}
3 q6 J* Z' k8 ]4 v8 r: T9 b) h2 @: n, i' R  ?/ b

3 I% J0 y2 x; h' S& ~3 GLinkSQL::~LinkSQL(void)
! p. ~  ~9 K) d8 m1 b5 j{, ~# H9 g5 H4 I. j; J
}9 d) h3 K8 ~( x
void LinkSQL::OpenSQL()2 y7 U& _4 P; q+ H8 N
{
" x! N8 W* M" B; Q4 [        try             2 Z0 y& ^" N6 n! d2 W' o0 h
        {                  X5 n4 U( N3 M, f+ Q( ~
        " Q, o- E" N5 K& ~/ c5 _0 J
                /*打开数据库“SQLServer” */               
% j! c" E- K' k' `; [5 ~- i1 \# m+ Q                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  
2 n+ ^$ i( T& o$ {                    
& \$ i# v0 O5 T8 j6 k" ?0 L3 f        }   
6 J  T& _( ^; v& \/ n* t        caTCh (_com_error &e)             3 l; C  d) }6 `9 o2 F
        {                9 L* O/ F, a1 M" e' B4 _; |9 u3 l
                 2 L& L# Z5 d- I
                ss<<e.ErrorMessage();     
1 }; u" f" o5 X8 X; }                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
; q" M9 Q6 Q2 C% p                ss.str("");% z; _# w& i7 {1 {- i
                            1 q; t  [+ d  F6 ^
        }            
% z( X/ B5 H; g6 N/ m; g' C                         8 W  [) v- l* H; X  C
}2 }6 H/ |" |5 N1 L  E. Q1 \" J2 B* h
void LinkSQL::CloseSQL()7 d# u8 ]$ O7 v1 E& Z; {
{
1 e& A% B1 S* y# w& i  w$ Q  K        try            
; ~! U; q3 @6 L, w        {                 
0 C$ g- s$ u) G& Y& e6 Q# i: y  J  P! b* F) ]5 P
                pRst->Close();     //关闭记录集                  
1 B! \) J2 A) e  S* P: a- \                pMyConnect->Close();//关闭数据库                  
5 R! k* ^' Z+ |7 V4 o; Y6 R$ X                pRst.Release();//释放记录集对象指针                  # b4 G' J, F6 h. x/ y4 T
                pMyConnect.Release();//释放连接对象指针   
; [& n, f7 H6 T) A4 v) i3 G1 x; j        }  0 {8 r9 }% ~" W# \& S- w4 S" V  _
        catch(_com_error &e)            
* i6 A" s- a% ~! P; W        {                 
; o* ^0 I# |3 b  ^3 z                ss<<e.ErrorMessage();     8 b, w, R. ^* j7 `; m
                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());: i: p' g; w5 ~: P9 ^; i
                ss.str("");         
0 t' u' [" u+ F/ X* C& L        }                  
5 G5 W. i7 V8 l9 D( a       
6 A' E7 I% a( \4 D        CoUninitialize(); //释放COM环境   5 c) P8 b9 \* f
}( ?* H0 T0 e( z9 x/ F2 F! l
void LinkSQL::ShowInformation()/ W  ^( Z) N2 _( l, D3 K
{+ M2 U: [7 n& X+ W# k* `6 [3 X3 O+ n8 w$ s

) k9 B$ ~0 ~# W$ D% J, I        ListingWindow *thwLW=theSession->ListingWindow();
# \* z1 l% S" [3 F1 \        thwLW->Open();
: Y; f3 u& J1 a+ ]& s2 o: B7 e7 \; M: F1 h
        try) c; S) p: P/ X3 w. [+ ^
        {! p" j4 \6 [) U8 K
                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat   
' Z' @" |5 b/ p4 ^        }
6 W* `/ T+ H/ _4 O* O- H& @" [4 S        catch(_com_error &e)& v* g: `7 S7 Z( b8 N4 p
        {; P7 G2 G6 T$ g  e; G0 _
       
- |% @+ T# Z, B* u( x( \. k                ss<<e.ErrorMessage();
9 m3 W6 G" o, c: D- m                thwLW->WriteLine(ss.str());
' t" [0 ]6 d0 v# g0 j                ss.str("");
6 H" G# w; k8 s: Q                return;
" |3 Z  ?% o4 M1 {, h+ ~        }6 s! `: E  I: O( @; U
}
% Q0 a- o+ m, V) r1 z- t//执行文件
. v% m& |- g3 @0 D. F6 T) l( @        LinkSQL *theLinkSQL=new LinkSQL;. N3 d: y+ d2 P; j, [7 N+ e
        theLinkSQL->OpenSQL();3 X0 H# V& v  V7 H2 m
        theLinkSQL->ShowInformation();
: h8 R! M0 S* w- f4 P, n        theLinkSQL->CloseSQL();; l2 _6 ]1 K4 N2 {  O) i# W
        delete theLinkSQL;$ [. T5 q! G" r9 R
' g% a% m* C5 x0 w7 H
哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了