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

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件
9 u4 o" Q0 o7 y" R& `# K# L, o1 t) i#pragma once1 j1 i: o/ Z2 E6 G$ w( ^, e
#include "iostream"     
8 {) E3 R& o- t, w* ?1 |#include "string"     
- P  |$ f0 Z% n( K#include "vector"     7 R; w; E1 W) i' R3 C
6 l7 ^1 N; r; M1 J" ?5 ]: R; E3 g
//添加对ADO的支持   
. m5 W8 H) i# Q9 m6 f' a' k" ^0 U5 z#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
  j" f# k6 h* u( z4 l8 |#include <NXOpen\Session.hxx>
& c) c! A# {8 F8 A
! e7 a* a( j' {  ~! d4 m% ~#include "uf.h"
# V  O9 M  G6 h% E  u#include "uf_ui.h"6 @+ b' z& K" m7 C1 z- U3 W8 @
#include <NXOpen/UI.hxx>
3 H; X& R- q9 o- S' J#include <NXOpen/NXMessageBox.hxx>
& c  ]5 j0 C# ~4 k#include <sstream>
8 N+ ]. S) c- R* T#include <NXOpen/ListingWindow.hxx>
4 s+ n6 n5 T0 `1 r% n: susing namespace NXOpen;1 R! Y, C4 g7 K# l8 I
using namespace std;" Z$ A- `  F3 u) x( _* W
class LinkSQL6 d# i$ e4 y6 g0 O/ @# p/ m
{
: n, C8 G! c( U" G6 k3 Ypublic:
9 i: A6 O$ V, f! T, R4 E        LinkSQL(void);9 U, z! B/ d: x0 W1 N
        ~LinkSQL(void);. z# \, u8 l: z0 c6 D! t  W, @
        void OpenSQL();$ q6 L+ {2 R& ?$ f# S8 ~" f
        void ShowInformation();1 b- ]/ [; y: d. o& d* X1 y0 D: G
        void CloseSQL();" v0 _  S6 i/ y4 |$ W
private:
: S+ ~% e6 `% s/ N) M8 o. t        Session *theSession;) a2 E8 {, ^( ~9 f/ R3 W$ A4 h
        UI *theUI;
- Z( ]) e/ U2 t: \! ?" P        _ConnectionPtr pMyConnect;/ T* [; J' r0 q: W4 F1 v8 e
        _RecordsetPtr pRst;
; m+ S: d$ G+ x1 h3 c        stringstream ss;
+ M- O' v5 Q6 J( |& l};
, @# o3 k& _6 G. N( G
" w( H0 }8 \2 T3 r# |LinkSQL:inkSQL(void)
  O7 [3 F8 a; U) O! q* F$ z{
7 t' z, o$ n, d8 o        CoInitialize(NULL); //初始化COM环境              ( i/ N4 f! T8 g# z! L
        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象   
' [  R. Q9 k; A% F9 D6 D0 v  D        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  . S, K& Z: M- Z  [8 v3 c
        theSession=Session::GetSession();0 v' |" {; H+ r4 j: p0 \
        theUI=UI::GetUI();
, ?: u" W1 u9 j! y8 G}- e. w: |' Y0 k: Q3 l

0 Z7 S; q( a: o$ @5 x; T; T" E( h0 |& \
LinkSQL::~LinkSQL(void)
* {* J" s9 X$ |9 E3 z5 g{
! z& [9 p  M" \}  M- Q) F7 q2 s
void LinkSQL::OpenSQL()
4 B  v% C- r- J: H# R0 X5 g{# ^& l  K1 V! r5 C
        try             ( l: S, t( e# T5 c# a( a" O
        {               
- o- s' l4 l$ m* p        / P5 a: B1 H, j. \) Q
                /*打开数据库“SQLServer” */               
- Q6 [* g* ?! O5 d5 _3 F                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  
8 m  N, Z" R$ O" b8 \. y' E                    
/ r0 z4 K# k$ t7 u9 d9 |0 s        }   & m2 _) M/ r) Y: r* N
        caTCh (_com_error &e)             & m* C" R5 v: B4 p' f( d: E
        {                3 u+ {6 e/ P. v) p6 R* [
                 
% [0 m: Z- q" |  O, y2 O7 i2 \8 \5 w                ss<<e.ErrorMessage();     6 i5 [" ?/ ?# y8 g& Q0 x; k' d
                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
) s3 z& F0 e, [+ {, ~9 D                ss.str("");
$ O# Z# O0 I$ U; y! ]* i# V                           
; `0 z) P+ H7 A( n6 J        }             2 F: X7 H# o9 S- O* h
                         6 \( L! B9 |* e
}9 k' i5 e" ]3 v! O( j% a
void LinkSQL::CloseSQL(), h, b0 w% t6 ?# |% Z, P. @/ v2 K
{  ?$ S3 C/ m9 H9 E. b
        try            
# d. B' r' w/ D5 A& C4 S        {                 * d' K  l4 K7 i3 M+ H5 J
6 i! A, q( ^( Q( e3 i2 D- G
                pRst->Close();     //关闭记录集                  
% O# b" h- F' q4 V/ X, d$ }) K                pMyConnect->Close();//关闭数据库                  ; a' }  ?7 X; [- ^; [
                pRst.Release();//释放记录集对象指针                  8 m+ E, k1 b* Y( L  a  u% T- e
                pMyConnect.Release();//释放连接对象指针   # K7 @! `7 e: D# U' z0 e: L% v1 h2 ]/ O
        }  
' A# ]# Z4 v- u7 O0 d        catch(_com_error &e)             1 d+ m: n' K4 p& ^$ ]6 `
        {                 + B+ c1 g* E+ E% ~3 }/ L- N
                ss<<e.ErrorMessage();     
6 U; O# G6 r8 |- S                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());8 I* L+ r9 r5 \3 A; c
                ss.str("");          # O6 |) K4 I9 d6 i& F1 \  X
        }                  
' D' d' x3 I& B: T7 V# t8 \       
* W7 Z' a$ i1 I. J        CoUninitialize(); //释放COM环境   . z1 d# e8 P) k: p
}1 E# ?- B6 L$ b- b9 V" r
void LinkSQL::ShowInformation()
4 b: C0 |/ h  |- g3 C{
% D% K9 J5 s6 o1 F& g
4 H( K1 w; j0 c1 M$ Q8 O# S6 @        ListingWindow *thwLW=theSession->ListingWindow();0 |! V; a' ~( q1 D# D. K
        thwLW->Open();
' Y2 a% R& h9 S3 Q2 W- k# U3 ~& n! @
( D6 {& w" p" D% [8 |8 S0 k        try
4 ]$ i9 b0 |7 r7 p, f        {
5 }& o0 E+ D9 Q' Y                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat   
2 n  F& {  a+ ^. m" h9 Y        }+ b- e7 a" T- h
        catch(_com_error &e)
! K) p9 [; ^+ _) h! y7 m2 I$ W        {
( [% M' I/ B5 `       
# o3 p/ |) ]  D0 A3 J2 C                ss<<e.ErrorMessage();; W0 G$ q: C' N7 T. d
                thwLW->WriteLine(ss.str());
  i6 l( }6 G  }  E& i: F7 k- f5 E                ss.str("");
8 Q6 T* W, N# {" G3 Z# S9 F                return;; T& D/ v6 s) g6 W/ D
        }2 ?; ]$ L# m: j* j/ ]8 t
}$ _0 ~/ d9 `' h/ {! h% k2 b
//执行文件0 h9 U$ h5 G+ S: H+ E: f& Q3 F
        LinkSQL *theLinkSQL=new LinkSQL;5 C8 P) k" H3 ^0 Q9 n1 g# N; X' c
        theLinkSQL->OpenSQL();$ l* e) G% _3 j+ }4 U6 |
        theLinkSQL->ShowInformation();8 ~6 K" O! i9 z, P, Z3 [; f' ?
        theLinkSQL->CloseSQL();$ p& W! t9 @# x' Z/ @& c
        delete theLinkSQL;
' A  ?! w4 C+ O; y
) S+ K  b/ d* J- B( ]4 b$ R哪个地方出错了,在控制台程序的时候没问题,在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二次开发专题模块培训报名开始啦

    我知道了