• 使用C++访问数据库(ADO)


    使用c++访问数据库(ADO)

    1 创建数据库

    新建查询—>粘贴下面eg代码—>执行—>刷新数据库—>创建成功

    在这里插入图片描述

    eg pxscj

    create database pxscj
    go
    USE [pxscj]
    GO
    /****** Object:  Table [dbo].[cjb]    Script Date: 2017/9/25 5:25:57 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[cjb](
    
           [学号] [char](6) NOT NULL,
    
           [课程号] [nchar](3) NOT NULL,
    
           [成绩] [int] NULL,
    
    CONSTRAINT [PK_cjb] PRIMARY KEY CLUSTERED 
    
    (
    
           [学号] ASC,
    
           [课程号] ASC
    
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    
    ) ON [PRIMARY]
    
    GO
    
    /****** Object:  Table [dbo].[kcb]    Script Date: 2017/9/25 5:25:57 ******/
    
    SET ANSI_NULLS ON
    
    GO
    
    SET QUOTED_IDENTIFIER ON
    
    GO
    
    CREATE TABLE [dbo].[kcb](
    
           [课程号] [char](3) NOT NULL,
    
           [课程名] [nchar](16) NOT NULL,
    
           [开课学期] [tinyint] NULL,
    
           [学时] [tinyint] NULL,
    
           [学分] [tinyint] NOT NULL
    
    ) ON [PRIMARY]
    
    GO
    
    /****** Object:  Table [dbo].[xsb]    Script Date: 2017/9/25 5:25:57 ******/
    
    SET ANSI_NULLS ON
    
    GO
    
    SET QUOTED_IDENTIFIER ON
    
    GO
    
    CREATE TABLE [dbo].[xsb](
    
           [学号] [char](6) NOT NULL,
    
           [姓名] [nchar](8) NOT NULL,
    
           [性别] [bit] NULL,
    
           [出生时间] [date] NULL,
    
           [专业] [nchar](12) NULL,
    
           [总学分] [int] NULL,
    
           [备注] [nvarchar](500) NULL,
    
           [照片] [varbinary](max) NULL,
    
    CONSTRAINT [PK_xsb] PRIMARY KEY CLUSTERED 
    
    (
    
           [学号] ASC
    
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    
    ) ON [PRIMARY]
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191301', N'101', 80)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191301', N'102', 78)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191301', N'206', 76)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191302', N'102', 78)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191302', N'206', 78)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191303', N'101', 62)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191303', N'102', 70)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191303', N'206', 81)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191304', N'101', 90)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191304', N'102', 84)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191304', N'206', 84)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191306', N'101', 86)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191306', N'102', 55)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191306', N'206', 95)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191307', N'101', 67)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191307', N'102', 78)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191307', N'206', 45)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191308', N'101', 89)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191308', N'102', 78)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191309', N'101', 90)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191309', N'102', 79)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191309', N'206', 89)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191310', N'101', 95)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191310', N'206', 87)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191311', N'101', 67)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191311', N'102', 95)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191311', N'206', 78)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191313', N'101', 89)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191313', N'102', 90)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191313', N'206', 67)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221301', N'101', 89)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221301', N'102', 90)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221301', N'206', 67)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221302', N'101', 66)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221302', N'102', 89)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221302', N'206', 70)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221303', N'102', 78)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221303', N'206', 90)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221304', N'101', 98)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221304', N'102', 76)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221304', N'206', 85)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221306', N'101', 80)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221306', N'102', 67)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221306', N'206', 87)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221310', N'101', 76)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221310', N'102', 94)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221310', N'206', 86)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221316', N'101', 76)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221316', N'102', 46)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221316', N'206', 44)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221318', N'101', 76)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221318', N'206', 77)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221320', N'101', 82)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221320', N'102', 96)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221320', N'206', 90)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221321', N'101', 56)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221321', N'102', 67)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221321', N'206', 88)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'101', 69)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'102', 78)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'206', 100)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'208', 100)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'209', 100)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'210', 100)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'212', 100)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'301', 100)
    
    GO
    
    INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'302', 100)
    
    GO
    
    INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'101', N'计算机基础      ', 1, 80, 5)
    
    GO
    
    INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'102', N'程序设计语言    ', 2, 68, 4)
    
    GO
    
    INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'206', N'离散数学        ', 4, 68, 4)
    
    GO
    
    INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'208', N'数据结构        ', 5, 68, 4)
    
    GO
    
    INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'209', N'操作系统        ', 6, 68, 4)
    
    GO
    
    INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'210', N'计算机原理   ', 5, 85, 5)
    
    GO
    
    INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'212', N'数据库原理   ', 7, 68, 4)
    
    GO
    
    INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'301', N'计算机网络   ', 7, 51, 3)
    
    GO
    
    INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'302', N'软件工程        ', 7, 51, 3)
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191301', N'王林    ', 1, CAST(N'1990-02-10' AS Date), N'计算机   ', 60, N'bbb')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191302', N'程明    ', 1, CAST(N'1991-02-01' AS Date), N'计算机   ', 50, N'我是 191302')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191303', N'王燕    ', 0, CAST(N'1989-10-06' AS Date), N'计算机   ', 50, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191304', N'韦严平 ', 1, CAST(N'1990-08-26' AS Date), N'计算机   ', 50, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191306', N'李方方 ', 1, CAST(N'1990-11-20' AS Date), N'计算机   ', 50, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191307', N'李明    ', 1, CAST(N'1990-05-01' AS Date), N'计算机   ', 54, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191308', N'林一帆 ', 1, CAST(N'1989-08-05' AS Date), N'计算机   ', 52, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191309', N'张强明 ', 1, CAST(N'1994-08-11' AS Date), N'计算机   ', 50, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191310', N'张蔚    ', 0, CAST(N'1996-07-22' AS Date), N'计算机   ', 50, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191311', N'赵琳    ', 0, CAST(N'1995-03-18' AS Date), N'计算机   ', 50, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191313', N'严红    ', 0, CAST(N'1994-08-11' AS Date), N'计算机   ', 48, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191315', N'刘明仪 ', 1, CAST(N'1996-03-02' AS Date), N'计算机   ', 50, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221301', N'王敏    ', 1, CAST(N'1994-06-10' AS Date), N'通信工程    ', 42, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221302', N'王林    ', 1, CAST(N'1994-01-29' AS Date), N'通信工程    ', 40, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221303', N'王玉民 ', 1, CAST(N'1995-03-26' AS Date), N'通信工程    ', 42, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221304', N'马琳琳 ', 1, CAST(N'1995-02-10' AS Date), N'通信工程    ', 50, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221306', N'李计    ', 1, CAST(N'1995-09-20' AS Date), N'通信工程    ', 53, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221310', N'李红庆 ', 1, CAST(N'1994-05-01' AS Date), N'通信工程    ', 50, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221316', N'孙详欣 ', 1, CAST(N'1994-03-19' AS Date), N'通信工程    ', 50, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221318', N'孙研    ', 1, CAST(N'1995-10-09' AS Date), N'通信工程    ', 56, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221320', N'吴薇华 ', 1, CAST(N'1995-03-18' AS Date), N'通信工程    ', 48, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221321', N'刘燕敏 ', 1, CAST(N'1994-11-12' AS Date), N'通信工程    ', 50, N'...')
    
    GO
    
    INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221341', N'罗林琳 ', 1, CAST(N'1995-01-30' AS Date), N'通信工程    ', 52, N'...')
    
    GO
    
    ALTER TABLE [dbo].[cjb] ADD  CONSTRAINT [DF_cjb_成绩]  DEFAULT ((0)) FOR [成绩]
    
    GO
    
    ALTER TABLE [dbo].[kcb] ADD  CONSTRAINT [DF_kcb_开课学期]  DEFAULT ((1)) FOR [开课学期]
    
    GO
    
    ALTER TABLE [dbo].[kcb] ADD  CONSTRAINT [DF_kcb_学时]  DEFAULT ((0)) FOR [学时]
    
    GO
    
    ALTER TABLE [dbo].[kcb] ADD  CONSTRAINT [DF_kcb_学分]  DEFAULT ((0)) FOR [学分]
    
    GO
    
    ALTER TABLE [dbo].[xsb] ADD  CONSTRAINT [DF_xsb_性别]  DEFAULT ((1)) FOR [性别]
    
    GO
    
    ALTER TABLE [dbo].[xsb] ADD  CONSTRAINT [DF_xsb_专业]  DEFAULT ('计算机') FOR [专业]
    
    GO
    
    ALTER TABLE [dbo].[xsb] ADD  CONSTRAINT [DF_xsb_总学分]  DEFAULT ((0)) FOR [总学分]
    
    GO
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
    • 324
    • 325
    • 326
    • 327
    • 328
    • 329
    • 330
    • 331
    • 332
    • 333
    • 334
    • 335
    • 336
    • 337
    • 338
    • 339
    • 340
    • 341
    • 342
    • 343
    • 344
    • 345
    • 346
    • 347
    • 348
    • 349
    • 350
    • 351
    • 352
    • 353
    • 354
    • 355
    • 356
    • 357
    • 358
    • 359
    • 360
    • 361
    • 362
    • 363
    • 364
    • 365
    • 366
    • 367
    • 368
    • 369
    • 370
    • 371
    • 372
    • 373
    • 374
    • 375
    • 376
    • 377
    • 378
    • 379
    • 380
    • 381
    • 382
    • 383
    • 384
    • 385
    • 386
    • 387
    • 388
    • 389
    • 390
    • 391
    • 392
    • 393
    • 394
    • 395
    • 396
    • 397
    • 398
    • 399
    • 400
    • 401
    • 402
    • 403
    • 404
    • 405
    • 406
    • 407
    • 408
    • 409
    • 410
    • 411
    • 412
    • 413
    • 414
    • 415
    • 416
    • 417
    • 418
    • 419
    • 420
    • 421
    • 422
    • 423
    • 424
    • 425
    • 426
    • 427
    • 428
    • 429
    • 430
    • 431
    • 432
    • 433
    • 434
    • 435
    • 436
    • 437
    • 438
    • 439
    • 440
    • 441
    • 442
    • 443
    • 444
    • 445
    • 446
    • 447
    • 448
    • 449
    • 450
    • 451
    • 452
    • 453
    • 454
    • 455
    • 456
    • 457
    • 458
    • 459
    • 460
    • 461
    • 462
    • 463
    • 464
    • 465
    • 466
    • 467
    • 468
    • 469
    • 470
    • 471
    • 472
    • 473
    • 474
    • 475
    • 476
    • 477
    • 478
    • 479
    • 480
    • 481
    • 482
    • 483
    • 484
    • 485
    • 486
    • 487
    • 488
    • 489
    • 490
    • 491
    • 492
    • 493
    • 494
    • 495
    • 496
    • 497
    • 498
    • 499
    • 500
    • 501
    • 502
    • 503
    • 504
    • 505
    • 506
    • 507
    • 508
    • 509
    • 510
    • 511
    • 512
    • 513
    • 514
    • 515
    • 516
    • 517
    • 518
    • 519
    • 520

    2 测试是否成功连接数据库

    (桌面,随便哪个位置)新建文本文档—>改拓展名.udl —>提供程序里面选择Microsoft OLE DB Provider for SQL Server—>下一步(连接)

    测试数据库是否连接成功,填写

    在这里插入图片描述

    点击确定(中间的和下面两个)
    注意:由于当时下面的确定我没有点,直接关闭了这个页面,导致打开打开的记事本文件里面没有显示
    之后以记事本的方式打开这个udl文件

    在这里插入图片描述

    显示(之后会使用这个里面的连接串)

    在这里插入图片描述

    在这个连接串中,Persist Security Info 属性为 True 时表示在建立连接后仍然保存密码,一般取 False 即可 。ID 和 Password 属性只有在上述数据库属性对话框中勾选“允许保存密码”时才会有 。自己可以手工添加 。pxscj 是我的数据库名 。

    3 开始写程序

    3.1 程序框架

    打开vs —> 创建空项目—>在项目中新建一个名为 main.cpp 的源文件 ,然后在这个文件中输入以下代码:

    #import "c:\\Program Files\\Common Files\\System\\ADO\\msado15.dll" no_namespace rename("EOF", "EndOfFile")
    #include <stdio.h>  // wprintf
    #include <locale.h> // setlocale
    
    int main()
    {
           setlocale(LC_ALL, "chs");
           CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
           
        try
           {          
    
           }
        
           catch (_com_error &err)
           {
                   wprintf(L"The application throws the error: %s\n", (wchar_t*)err.ErrorMessage());   wprintf(L"Description = %s\n", (wchar_t*)err.Description());
           }
        
           CoUninitialize();
           return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    点击调试—>选择开始执行(不调试)—>弹出黑框—>关闭

    其中:

    • #import 是一个编译器指令(#include 也是编译器指令) 。用于导入指定的 DLL 文件 。在本程序中,导入了 msado15.dll 文件,这个文件实现了 ADO 编程接口 。由于这个编译器指令,编译器会为我们做大量的工作,比如包含所需的头文件(头文件中通常包括函数和类型的声明以及常量或枚举的定义等);除此之外,还指定了不要使用命名空间(稍后解释)以及将标识符更名(将 EOF 更名为 EndOfFile) 。
    • 调用 setlocale 函数可能有助于解决在控制台窗口中的中文显式问题 。
    • CoInitialize 和 CoUninitialize 函数分别用于 COM 对象的初始化和关闭 ,调用这两个函数是必须的,因为 ADO 是一种 COM 方式的接口 。
    • 使用 ADO 访问数据路可能会出现各种错误,因此应该将所有的使用 ADO 的代码放到 try 块中 。对于本教程后面的各个节中的大多数示例代码,拷贝到这个 try 块中即可 。
    3.2 连接串和连接对象
    创建连接对象

    使用以下代码创建并打开一个连接对象 。

    将下面代码粘贴到上面代码try块

    _bstr_t ConnStr("Provider = SQLOLEDB.1; Persist Security Info = False; User ID = sa; Password = 123456; Initial Catalog = pxscj; Data Source = XT-PC");
    
    _ConnectionPtr Conn(__uuidof(Connection));
    
    Conn->Open(
    
       ConnStr,
    
       "",
    
       "",
    
       (long)0
    
    );
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    其中:

    • _bstr_t 的字面意思是“基本的串类型”,这是 一种 COM 特有的数据类型 。调用 _bstr_t 的构造函数,并以一个连接串作为参数,得到一个 _bstr_t 对象 。
    • 接下来调用 _ConnectionPtr 的构造函数,创建并初始化一个连接对象 Conn 。
    • 再接下来调用 Conn 的 Open 方法 。如果调用失败,会产一个出错 。连接对象的类名为 _ConnectionPtr,这个类重载了 -> 运算符,这使得通过这个类的实例(对象)访问成员时,可以使用点(.)运算符,也可以使用箭头(->)运算符,就好像这个类的实例是一个指向这个类的实例的指针,这也就是为什么在这个类的类名中有“Ptr”的字样的原因 。
    使用连接对象

    在创建并打开了一个连接对象后,通过使用连接对象的 Execute 方法,几乎可以将任意的 SQL 语句作为其参数,从而可以完成很多数据库的操作(增 、删 、查 、改) 。比如:

    Conn->Execute(
    
       "UPDATE xsb SET 备注 = '外校互认学分课程', 总学分 = 总学分 + 3 WHERE 学号 = '231302'",
    
       NULL,
    
       (long)0);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    对于查询这样的操作,则需要将连接对象 Execute 方法的调用结果返回给一个记录集对象 。

    将上面代码粘贴至刚刚try里面(接着刚刚代码块)

    点击调试—> 开始执行—>关闭

    把刚刚udl用记事本打开的文件,红色框

    在这里插入图片描述

    复制,删贴到main.cpp文件里面try块

    (把上面的连接串替换成自己的连接串)

    调试—>执行 返回0 则运行成功

    数据库的操作(增 、删 、查 、改)

    打开数据库

    选择pxscj—>dbo_xsb—>选择前1000行

    在这里插入图片描述

    则会显示

    在这里插入图片描述

    在刚刚try代码里面,修改里面的数据

    在这里插入图片描述

    学号 = '191301'   修改学号为191301的信息
    
    • 1

    调试—>开始执行

    显示

    在这里插入图片描述

    之后重新进行刚才的操作:

    选择pxscj—>dbo_xsb—>选择前1000行

    你会发现数据发生改变(跟上面的表图对比)备注和总学分被修改

    在这里插入图片描述

    3.3 记录集对象

    一个记录集对象代表了一些记录的集合,比如一个查询命令的执行结果 。

    创建记录对象
    _RecordsetPtr RecordsetObj(__uuidof(Recordset));
    
    RecordsetObj = ConnObj->Execute(
    
       "select * from xsb",
    
       NULL,
       (long)0);
    wprintf(L"%s\n", (wchar_t*)RecordsetObj->GetString(adClipString, long(-1), "\t", "\n", ""));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    其中:

    • 首先创建并初始化了一个名字为 RecordsetObj 记录集对象 。
    • 然后这个记录集对象得到了一个查询命令的查询结果。
    • 最后调用这个记录集对象的 GetString 方法,将整个查询结果作为一个串显示。

    复制上面代码

    粘贴至刚刚try块里面:(删除选中部分再粘贴)

    在这里插入图片描述

    将try块里面的Conn改为ConnObj

    然后:调试—>开始执行

    在这里插入图片描述

    使用记录集对象执行命令

    如前所述,可以使用连接对象的 Execute 方法执行命令,如果有返回的记录集,可以将这个记录集返回给一个记录集对象 。使用 记录集对象的 Open 方法,也可以执行命令,但通常是有返回记录集的命令,比如执行 SELECT 语句 。

    _bstr_t ConnStr("Provider = SQLOLEDB.1; Persist Security Info = False; User ID = sa; Password = 123456; Initial Catalog = pxscj; Data Source = XT-PC");
    
    _ConnectionPtr ConnObj(__uuidof(Connection));
    ConnObj->Open(
       ConnStr,
       "",
       "",
       NULL );
    
    _RecordsetPtr RecordsetObj(__uuidof(Recordset));
    RecordsetObj->Open(
       "xsb",
       ConnObj.GetInterfacePtr(),
       adOpenForwardOnly,
       adLockReadOnly,
       adCmdTable);
    wprintf(L"%s\n", (wchar_t*)RecordsetObj->GetString(adClipString, long(-1), "\t", "\n", ""));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在上述代码中,调用记录集对象 RecordsetObj 的 Open 方法,注意其中的几个参数:

    • 第一个参数是一个表的名字,记录集将得到这个表的所有数据;与这个参数对应的是最后一个参数,指定命令的类型为 adCmdTable ,将第一个参数中的字符串解释为一个表名 。更常见的做法是将第一个参数设置为一个 SQL 查询语句,比如 “select * from xsb”,相应地,将最后一个参数设置为 adCmdText
    • 第二个参数将这个记录集对象与一个连接对象关联起来 。还可以将这个参数直接设置为一个连接字符串,在这种情况下,会导致 ADO 隐式地创建一个连接对象。
    • 第三个和第四个参数分别指定游标的类型和锁的类型 。

    删除整个try块里面的代码

    在这里插入图片描述

    将上面代码粘贴至此处

    重复之前一个操作:

    把刚刚udl用记事本打开的文件,红色框

    在这里插入图片描述

    复制,删贴到main.cpp文件里面try块

    (把上面的连接串替换成自己的连接串)

    在这里插入图片描述

    调试—>开始执行

    在这里插入图片描述

    记录集的游标、当前记录、fields集合和字段对象

    每个打开的记录集对象都有一个相应的游标,用于访问这个游标指向的一个记录 。

  • 相关阅读:
    【论文阅读】A Survey on Video Diffusion Models
    前端工作小结81-状态管理里面取值
    ES8 | async和await
    【线性代数】第五章-线性方程组
    Panoply启动报错A Java Exception has occurred
    【web-解析目标】(1.1.1)解析内容和功能:web信息抓取
    树状数组解题报告
    Java高级面试题(二)-- JVM
    Javascript知识【jQuery-基本操作】上篇
    QT(超详细从0开始)
  • 原文地址:https://blog.csdn.net/weixin_51249285/article/details/125481470