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

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

xiao2076 楼主

2014-10-17 08:11:57

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

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

x
//类文件
; v: F; [4 _0 U6 d% O9 Y#pragma once
% |4 H0 }- W! o7 K( |' {. _4 n#include "iostream"     8 G: G" c5 Y6 ], I" Y6 v# A  @
#include "string"     
7 a* i/ N( @* q: |) F#include "vector"     7 D: q5 R* Q& w, m: |
7 v7 W$ D" N+ n9 S( S8 `; ^
//添加对ADO的支持   3 M5 u6 @7 b4 s* u* p
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 8 t- ]9 N7 q) C: z
#include <NXOpen\Session.hxx>
* T, \& v! n+ o' N+ g; i7 X8 r! z( P
( b$ j$ |' v, G#include "uf.h"5 m  V; ~; M1 v1 q3 @! d% `/ s
#include "uf_ui.h"2 D- ?# I0 e( S+ ^. l5 l& u
#include <NXOpen/UI.hxx>
! X) Z% h3 d9 \4 @+ A; m# M#include <NXOpen/NXMessageBox.hxx>1 \" t  d: s( `1 Z
#include <sstream>9 i) J' e2 {; M  x1 U# m' w
#include <NXOpen/ListingWindow.hxx>
/ M, z- v1 ]9 t% U* vusing namespace NXOpen;+ _: E' q2 X+ h* r1 Z" W
using namespace std;+ z) K4 `: V2 M
class LinkSQL
, V# U+ k$ g" `  W" m{- K+ U1 W1 k8 Y3 n4 H# r* T6 {+ `; }
public:
* c3 L5 M1 y8 x& e" l: U3 S+ P        LinkSQL(void);0 F& r0 s' `+ U; m3 A- ]0 c
        ~LinkSQL(void);
* i& J/ Y+ p' l( z4 u( P        void OpenSQL();* A- w' q0 C, H
        void ShowInformation();" b% S) T4 N" k8 y* D1 A
        void CloseSQL();
% v4 \: H# u, Z4 oprivate:% H! W# U" ?/ ~; g8 J* o8 v  y1 _. L
        Session *theSession;
2 y0 k/ p  l) R3 }/ i        UI *theUI;6 v! R. N! g5 q' Z' ^
        _ConnectionPtr pMyConnect;
. i2 b) U: L7 R2 P2 O7 B6 h        _RecordsetPtr pRst;
; ]2 ?/ {; _' V: c0 \$ f  D        stringstream ss;5 U' A/ X# o' Y4 H0 I' W
};
* `( F$ ~8 p9 i% l
- {0 o, N1 {9 r' x3 k; Y: ZLinkSQL:inkSQL(void)+ c7 F* Q/ B" s
{# M1 \2 G; O6 v3 S( N# @
        CoInitialize(NULL); //初始化COM环境              . O0 ]* @3 A# Q2 ?
        _ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象   
5 C2 S6 R2 r: N( Y. H        _RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象  ( k& ~/ @( R& C
        theSession=Session::GetSession();
) P+ A2 o- b+ D9 g1 v+ Z4 S7 y        theUI=UI::GetUI();
! @! @: C! e( f6 P' O* H  C' z3 [}4 u1 G* l; F2 j' H$ G0 V
$ u! S. @% H, q  k: U8 N
1 j5 Q+ P1 N# y4 D$ J/ T- X
LinkSQL::~LinkSQL(void)5 u3 {! K$ _# i9 E9 j
{
) ^# E2 @( ?; |+ J# [  N}
2 P6 X9 E* W3 f; d, i! Ovoid LinkSQL::OpenSQL(): q! y0 e1 b# |; a, D, w; P" ^
{. g& G% ]& w+ A1 C6 a
        try               B1 l& b* d* `" x) o& [
        {               
6 I5 h) R4 |" P' s       
- V" y, `/ V: a; b* A3 t  g0 o                /*打开数据库“SQLServer” */               % j; W3 t, `3 x8 z  _+ D
                pMyConnect->Open("rovider=SQLOLEDB; Server=192.128.28.32;Database=test; uid=sa; pwd=123;","","",adModeUnknown);  
. ]2 N; M/ Q6 _                    6 I' W& i7 o* M7 [2 Q' R
        }   " ?# u4 y0 v8 e% J7 Z2 e) W, T  n
        caTCh (_com_error &e)             , B; H; I3 L8 M" A+ T
        {                5 J8 ?, q3 P' h
                 
5 o( `' s3 B: U& H$ i& Z                ss<<e.ErrorMessage();     8 W' w6 H. D$ l( g
                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
& D& {  {& R% I# W0 Z                ss.str("");
# m0 a5 n6 o9 o$ z9 x. s$ k                            8 y* O; L' p; Z$ K. @; b
        }            
4 Q, M! I+ r& F. b8 r) c6 W                         
0 f& [* s$ P1 k}
- ?/ }9 U& J# k5 @5 g* Xvoid LinkSQL::CloseSQL()
4 ^/ v( C1 ]( h) l/ G9 F' \{9 G0 a; i* ]! G4 Q% t7 P
        try            
/ t& p( L, `) Q( u- q4 \        {                 ; P. p5 y0 G) I6 E( O; T

! H* h3 ]* h1 S5 k% a% A                pRst->Close();     //关闭记录集                  
$ ]% G- b/ ~0 M, ~6 S                pMyConnect->Close();//关闭数据库                  
5 W, L( c2 b1 d                pRst.Release();//释放记录集对象指针                  5 `; p; m' n" _  ~, J% O9 w% k
                pMyConnect.Release();//释放连接对象指针   
+ z* H$ e- U. B6 [        }  
" U! y0 Z, l% f- [8 n( g, k6 Z5 N        catch(_com_error &e)             & \; r* i  M! Q; x
        {                 9 {, Z2 L( H  j. N- H
                ss<<e.ErrorMessage();     
$ `. K6 r' A4 Y5 Q  Y& ]                theUI->NXMessageBox()->Show("系统信息",NXMessageBox:ialogTypeError,ss.str());
8 L+ \# |+ W8 w3 B                ss.str("");         
4 M# f/ y6 F9 x+ J- E# Q- `; Q/ O        }                  
' V8 o  @+ H/ o# O        $ l. p. M+ N' U4 G6 {
        CoUninitialize(); //释放COM环境   
' v; Q  o# |: Z$ G! G}$ N. Q/ v- p/ L1 @
void LinkSQL::ShowInformation()
# j, ^) A( T) s% k- _, \; B" B{
5 P$ z. I+ k6 i$ ~5 i! T; B0 q, {) h9 ?4 N9 n  [+ Q
        ListingWindow *thwLW=theSession->ListingWindow();
0 B) K) n$ Y6 {+ e# \1 Y3 Q+ I        thwLW->Open();
6 m* h& s. M9 j/ T9 @- O. S8 Y7 o/ D! w0 T7 w2 V# Q& S
        try
! }: y2 F1 g* S        {9 S- _  M% k$ a! d! {+ b
                pRst = pMyConnect->Execute("select * from 表格1",NULL,adCmdText);//执行SQL: select * from gendat   
7 f7 Z- a0 o: G! O( Z1 V        }
. a- A" q2 P; b1 G/ W0 }        catch(_com_error &e)
  o- X3 t) g: M1 V: l        {1 `1 m* n  q' i7 w5 @
       
7 k! O, C% F% W! u                ss<<e.ErrorMessage();! P# Z( {+ L& X" |
                thwLW->WriteLine(ss.str());1 f, O* T' e0 s5 |
                ss.str("");
" M9 G' M" G$ t# r1 e  z4 |! K3 [  q                return;- H. C9 J6 r$ N& ^( ~! r
        }
9 @  b. m* l; I2 y  j}
/ q' `2 w( C1 F% n//执行文件$ {1 u- I3 M4 g3 e2 J' s/ V+ h& \0 g
        LinkSQL *theLinkSQL=new LinkSQL;" @0 W1 c' s" |! \
        theLinkSQL->OpenSQL();0 G, ~, Q* [1 {/ ^& N  R
        theLinkSQL->ShowInformation();$ Q9 }( B- e3 n( M
        theLinkSQL->CloseSQL();, i+ t9 M8 W" t: j* o) E8 r
        delete theLinkSQL;! c) T6 R3 e! _! H( _: i

, A6 I7 r4 A. |+ d4 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二次开发专题模块培训报名开始啦

    我知道了