表是SQL Server中最基本的数据库对象,用于存储数据的一种逻辑结构,由行和列组成, 它又称为二维表。例如,在学生成绩管理系统中,表1–是一个学生表(student)。(1)表表是数据库中存储数据的数据库对象,每个数据库包含了若干个表,表由行和列组成。例如,表1--由6行6列组成。(2)表结构每个表具有一定的结构,表结构包含一组固定的列,由数据类型、长度、允许Null值等组成...
文章目录1. 整数型● bigint(大整数)● int(整数)● smallint(短整数)● tinyint(微短整数)2. 精确数值型numeric | decimal(p[,s])3. 浮点型● real● float[(n)]4. 货币型●money● smallmoney5. 位型6. 字符型●char[(n)]●varchar[(n)]7. Unicode字符型● nchar[(n)...
文章目录一、SQL Server数据库的相关概念1、逻辑数据库2、物理数据库二、SQL Server数据库的基本操作1、使用SQL Server Management Studio (创建/修改/删除)数据库2、使用SQL语句(创建/修改/删除)数据库【数据库文件的类型】【主要】【次要】【事务日志】文件组1.主文件组(PRIMARY)2.用户定义文件组【文件组特性】一、SQL Server数据库...
文章目录浅复制和深复制String类实现浅复制和深复制有关浅复制与深复制的定义为:对类进行复制的时候按位复制,即把一个对象各数据成员的值原样复制到目标对象中。当类中涉及到指针类型数据成员的时候,往往就会产生指针悬挂问题。看以下结构:class A{ public: int* a;};A a1;A b1=a1;b1=a1执行的是浅复制,此时a1.a和b1....
1、设计一个合适的关系数据库系统的关键是关系数据库模式的设计,即应构造几个关系模式, 每个模式有哪些属性,怎样将这些相互关联的关系模式组建成一个适合的关系模型,关系数据库 的设计必须在关系数据库设计理论的指导下进行。2、关系数据库设计理论有三个方面的内容:函数依赖、范式和模式设计。函数依赖起核心作用, 它是模式分解和模式设计的基础,范式是模式分解的标准。【例1】设计一个学生课程数据库,其关系...
一、【关系数据结构】1、关系1)域(Domain)定义1–域是一组具有相同数据类型的值的集合。例如,整数、正整数、实数、大于等于0且小于等于100的正整数、{0,1,2,3,4}等都可以是域。2)笛卡尔积(Cartesian Product)定义2–设定一组域D1, D2, …, Dn,在这组域中可以是相同的域。定义D1, D2, …, Dn,的笛卡 尔积为D1×D2×…×Dn={(...
要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类似。迭代器按照定义方式分成以下四种。正向迭代器,定义方法如下:容器类名::iterator 迭代器名;常量正向迭代器,定义方法如下:容器类名::cons...
一、TCP/IP介绍1、TCP/IP体系结构TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输 层服务,而IP则是提供网络层服务。TCP/IP协议包括如下协议,其结构如图所示。IP: 网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储。 同时为ICMP,TCP,UDP提供分组发送服务。用户进程通常不需要涉及这一层。ARP: ...
一、数据库和数据库系统1、数据数据(Data)是事物的符号表示,数据可以是数字、文字、图像、声音等。2、数据库数据库(Database)是以特定的组织结构、存放在计算机的存储介质中的相 互关联的数据集合。数据库具有以下特征:(1)是相互关联的数据集合,不是杂乱无章的数据集合。(2)数据存储在计算机的存储介质中。(3)数据结构比较复杂,有专门理论支持。数据库包含了以下含义:(1)...
有时,编程的过程中需要将值从一种数据类型转换为另一种数据类型。C++ 提供了这样做的方法。如果将一个浮点值分配给一个 int 整型变量,该变量会接收什么值?如果一个 int 整数乘以一个 float 浮点数,结果将会是什么数据类型?如果一个 double 浮点数除以一个 unsigned int 无符号整数会怎么样?是否有办法预测在这些情况下会发生什么?答案是肯定的。当运算符的操作数具有不同的...
前言函数指针和指针函数,在学习 C 语言的时候遇到这两个东西简直头疼,当然还有更头疼的,比如什么函数指针函数、指针函数指针、数组指针、指针数组、函数指针数组等等,描述越长其定义就越复杂,当然理解起来就越难,特别是刚开始学习这门语言的童鞋,估计碰到这些东西就已经要崩溃了,然后好不容易死记硬背下来应付考试或者面试,然后过了几天发现,又是根本不会用,也不知道该在哪些地方用,这就尴尬了。今天这里只讲两...
USES_CONVERSION是用来转换类型的(比如T2A等转换需用此宏),比如我们很常见的问题:在Socket编程时候,我们的IP地址从界面上输进去一般都使用CString类型的,可是在SOCKADDR_IN中的inet_addr却是const char *我们就不能直接用CString来用。我们就可以使用T2A()宏了。 SOCKADDR_IN localaddr; ...
A2W、W2A、A2T、T2A _T() 的含义及使用方法1、A2W和W2A在《Window核心编程》,多字节和宽字节之间转换比较麻烦的,MultiByteToWideChar函数和WideCharToMultiByte函数有足够多的参数的意义让我们去理解。那么使用ATL的一个很好的字符串的转换宏:A2W和W2A。char:8位字节类型,表示ASCII码WCHAR:16位字符类型,表示Un...
TCP编程的服务器端一般步骤是:1、创建一个CAsyncSocket或CSocket类或其子类对象A,用于监听客户端连接,然后通过Create函数设定端口号和协议类型为SOCK_STREAM。2、开启监听,用函数Listen();3、接收客户端上来的连接,用函数Accept(&B);并且把连接连接的对象存到B中,以便通信使用。4、当客户端发送来消息时,会触发OnReceive函数...
1.vector容器vetcor顾名思义就是一个向量的容器,该容器中的每个元素都属于同一个类型,有点类似于数组,vetor容器与数组的不同之处就在于,它具有“动态”的属性,举例来说,如果定义了一个vector容量为10,当你添加第十一个元素时,他会自己找一篇新的足够大领土(内存),然后搬家(把旧址复制过去)。而数组同志显然就是比较死板,在定义时有多大,实际也就有多大。vector容器的常规操作有...
关于tcp通信过程中的三次握手、四次挥手的过程三次握手:此过程中:第一次握手,客户端先发一个SYN请求并附带一个J的值给服务端第二次握手,服务端收到请求后解堵塞,发送一个SYN请求并附带一个K值,还发送了第一次握手后对客户端的响应包并附带在之前接收到的J值的基础上加上1,即J+1第三次握手,客户端收到服务端发来的SYN请求和K值后,再发送一个K+1的响应包给服务端至此,三次握手成功...
写入配置文件 CString IP, Port; UpdateData(TRUE); // 将应用程序控件上面的IP和端口 更新至对应的成员变量 IP = m_IpAddress.GetString(); // 读取成员变量控件上面的IP地址将赋给strIP变量 Port.Format(L"%d", m_iPort); // 读取成员变量控件上面的端口将赋给m_iPort变量 Wri...
memset是计算机中C/C++语言初始化函数。作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。头文件 <string.h>或 < cstringh >函数介绍void *memset(void *s, int ch, size_t n);函数解释:将s中当前位置后面的n个字节 (typedef unsigned int si...
文件操作API和CFile类在VC中,操作文件的方法有两种,一是利用一些API函数来创建,打开,读写文件,另外一个是利用MFC的CFile类,CFile封装了对文件的一般操作。下面酒主要介绍如何利用这两种方法操作文件。1.创建或打开一个文件API函数CreateFile可打开和创建文件、管道、邮槽、通信服务、设备以及控制台,但是在此时只是介绍用这个函数怎么实现创建和打开一个文件。HANDL...
CString头文件#include <afx.h>string头文件#include <string.h>1、CString转char *CString cstr;char *p =(LPSTR)(LPCTSTR)cstr;2、string转 CStringCString.format(”%s”, string.c_str());用c_str()确实比dat...
均已打开 记事本(notepad)为例注意:打开其他程序时有的方法不可行,可都使用一遍进行测试1、创建一个新线程打开应用 PROCESS_INFORMATION processInfo; char dir[MAX_PATH] ; char cCmdLine[MAX_PATH]; DWORD dwExitCode; STARTUPINFO si = { sizeof(si) };...
一、【临界区】每个进程中访问临界资源的那段代码称为临界区(Critical Section)(临界 资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区, 进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程 必须互斥地对它进行访问。多个进程中涉及到同一个临界资源的临界区称为相关临界区。【进程进入临界区的调度原则】如果有若干进程要求进入空闲的临界区,一...
方法调用很简单,sprintf itoa函数在我的其他博客也有详解,请翻阅查看,话不多说,直接撸代码:#include <iostream>#include <string>#include <cstdlib>#include <sstream>#include <cstring> using namespace std;...
概念192.168.0.1–192.168.0.255一、进程状态1、创建状态:进程由创建而产生。2、就绪状态:指进程已准备好运行状态,即进程已分配到除CPU以外所有的必要资源后,只要再获得CPU,合可立即执行。(有执行资格,没有执行权的进程)3、运行状态:指进程已经获取CPU,其进程处于正在执行的状态。(既有执行资格,又有执行权的进程)4、阻塞状态:指正在执行的进程由于发生某事件(如...
一 .两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点通讯,比如多个Client连接一个Server.二 ....
在Visual C++ 6.0中,BYTE与WORD,DWORD本质上都是一种无符号整型,它们在WINDEF.H中被定义,定义如下:typedef unsigned char BYTE;typedef unsigned short WORD;typedef unsigned long DWORD;也就是说BYTE是无符号的char型(char型本质上也是一...
sprintf指的是字符串格式化命令,函数声明为 int sprintf(char *string, char *format [,argument,…]);,主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到 string 所指向的字符串。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以...
多线程同步技术在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进...
四种进程或线程同步互斥的控制方法:1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。2、互斥量:为协调共同对一个共享资源的单独访问而设计的。3、信号量:为控制一个具有有限数量用户资源而设计。4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。临界区(Critical Section)保证在某一时刻只有一个线程能访问数据的简便办法。在任意...
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号