怎么导数据库(怎么导数据库报告)

怎么导数据库(怎么导数据库报告),第1张

--一、导出/导入(Export/Import)

----利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。

----1简单导出数据(Export)和导入数据(Import)

----Oracle支持三种类型的输出:

----(1)表方式(T方式),将指定表的数据导出。

----(2)用户方式(U方式),将指定用户的所有对象及数据导出。

----(3)全库方式(Full方式),将数据库中的所有对象导出。

----数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。

----2增量导出/导入

----增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为exportdmp,如果不希望自己的输出文件定名为exportdmp,必须在命令行中指出要用的文件名。

----增量导出包括三个类型:

----(1)“完全”增量导出(Complete)

----即备份整个数据库,比如:

----$expsystem/managerinctype=completefile=990702dmp

----(2)“增量型”增量导出

----备份上一次备份后改变的数据。比如:

----$expsystem/managerinctype=incrementalfile=990702dmp

----(3)“累计型”增量导出(Cumulative)

----累计型导出方式只是导出自上次“完全”导出之后数据库中变化了的信息。比如:

----$expsystem/managerinctype=cumulativefile=990702dmp

----数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效地完成。

----比如数据库的备份任务可作如下安排:

----星期一:完全导出(A)

----星期二:增量导出(B)

----星期三:增量导出(C)

----星期四:增量导出(D)

----星期五:累计导出(E)

----星期六:增量导出(F)

----星期日:增量导出(G)

----如果在星期日,数据库遭到意外破坏,数据库管理员可按以下步骤来恢复数据库:

----第一步:用命令CREATEDATABASE重新生成数据库结构;

----第二步:创建一个足够大的附加回段。

----第三步:完全增量导入A:

----$impsystem/managerinctype=RECTOREFULL=YFILE=A

----第四步:累计增量导入E:

----$impsystem/managerinctype=RECTOREFULL=YFILE=E

----第五步:最近增量导入F:

----$impsystem/managerinctype=RESTOREFULL=YFILE=F

----二、冷备份

----冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。冷备份的优点是:

----1.是非常快速的备份方法(只需拷贝文件)

----2.容易归档(简单拷贝即可)

----3.容易恢复到某个时间点上(只需将文件再拷贝回去)

----4.能与归档方法相结合,作数据库“最新状态”的恢复。

----5.低度维护,高度安全。

----但冷备份也有如下不足:

----1.单独使用时,只能提供到“某一时间点上”的恢复。

----2.在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

----3.若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。

----4.不能按表或按用户恢复。

----如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:

----1.所有数据文件

----2.所有控制文件

----3.所有联机REDOLOG文件

----4.Initora文件(可选)。

----值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的

----下面是做冷备份的完整例子:

----(1)关闭数据库$sqldbalmode=y

----SQLDBA>connectinternal;

----SQLDBA>shutdownnormal;

----(2)用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件

----SQLDBA>!cp

----(3)重启Oracle数据库

----$sqldbalmode=y

----SQLDBA>connectinternal;

----SQLDBA>startup;

----三、热备份

----热备份是在数据库运行的情况下,采用archivelogmode方式备份数据的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下 *** 作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:

----1.数据文件一个表空间一个表空间地备份。

----(1)设置表空间为备份状态

----(2)备份表空间的数据文件

----(3)恢复表空间为正常状态

----2.备份归档log文件。

----(1)临时停止归档进程

----(2)log下那些在archiveredolog目标目录中的文件

----(3)重新启动archive进程

----(4)备份归档的redolog文件

----3.用alterdatabasebackupcontrolfile命令来备份拷贝文件

----热备份的优点是:

----1.可在表空间或数据文件级备份,备份时间短。

----2.备份时数据库仍可使用。

----3.可达到秒级恢复(恢复到某一时间点上)。

----4.可对几乎所有数据库实体作恢复。

----5.恢复是快速的,在大多数情况下在数据库仍工作时恢复。

----热备份的不足是:

----1.不能出错,否则后果严重。

----2.若热备份不成功,所得结果不可用于时间点的恢复。

----3.因难于维护,所以要特别仔细小心,不允许“以失败而告终”。

下拉列表里面的 元素 “是”和“否”不叫数据类型~

数据库里面的“是”和“否”~数据类型是char~

你的意思是想~

从数据库里面读出 “是” 和 “否”,然后在下拉列表显示出来把。

数据表随便建一个:

id ctype

1 是

2 否

然后这是c#代码

private void dropdownlist_Load(object sender, EventArgs e)

{

SqlConnection cn = new SqlConnection("server=;database=TestDatalist;integrated security=SSPI");

SqlCommand cm = new SqlCommand("select ctype from choess", cn);

SqlDataReader r;

cnOpen();

r = cmExecuteReader();

while (rRead())

{

comboBox1ItemsAdd(rGetValue(0)ToString());

}

cnClose();

}

连接字符串~根据自己的数据库改吧~

先从数据库中取出字段值后,再转换成ansic码,再显示页面

ansic不是c语言的吗?是ASCII不?

1字符转换成对应ASCII码:

public static int Asc(string character)

{

if (characterLength == 1)

{

SystemTextASCIIEncoding asciiEncoding = new SystemTextASCIIEncoding();

int intAsciiCode = (int)asciiEncodingGetBytes(character)[0];

return (intAsciiCode);

}

else

{

throw new Exception("Character is not valid");

}

}

2ASCII码值转换成对应字符:

public static string Chr(int asciiCode)

{

if (asciiCode >= 0 && asciiCode <= 255)

{

SystemTextASCIIEncoding asciiEncoding = new SystemTextASCIIEncoding();

byte[] byteArray = new byte[] { (byte)asciiCode };

string strCharacter = asciiEncodingGetString(byteArray);

return (strCharacter);

}

else

{

throw new Exception("ASCII Code is not valid");

}

}

什么数据库,不同数据库有不同连接方式。

一般步骤:

① 建立链接 SqlConnection

② 打开链接 SqlConnectionOpen

③ 通过适配器 Adapter 填充到 DataSet

④ 获取 DataSet 中 DataTable 里面的记录 DataRow

转化类型然后赋值给变量

#ifdef WIN32

#include <windowsh>

#include <odbcinsth>

#include <sqlexth>

#else

#include <mysqlh>

#include <unistdh>

#define SQLHANDLE static MYSQL

#endif

#include <stdargh>

#include <stdlibh>

#include <stdioh>

#include <stringh>

SQLHANDLE hDBEnv, hDBC;

int DB_Open(char dbcn, char usr, char pwd)

{

int r;

#ifdef WIN32

r = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hDBEnv);

if(r) return 0;

r = SQLSetEnvAttr(hDBEnv,SQL_ATTR_ODBC_VERSION,

(void)SQL_OV_ODBC3,0);

if(r) return 0;

r = SQLAllocHandle(SQL_HANDLE_DBC, hDBEnv, &hDBC);

if(r) return 0;

r = SQLConnect(hDBC,

(unsigned char )dbcn, strlen(dbcn),

(unsigned char )usr, strlen(usr),

(unsigned char )pwd, strlen(pwd));

return r==SQL_SUCCESS || r==SQL_SUCCESS_WITH_INFO;

#else

mysql_init(&hDBC);

MYSQL rx = mysql_real_connect(

&hDBC, dbcn, usr, pwd, NULL, 0, NULL, 0);

if(!rx) return 0;

return 1;

#endif

}//end DB_Open

int DB_Exec(char sql)

{

#ifdef WIN32

SQLHANDLE hStatement = NULL;

SQLAllocHandle(SQL_HANDLE_STMT, hDBC, &hStatement);

SQLExecDirect(hStatement,(unsigned char )sql, strlen(sql));

SQLCloseCursor(hStatement);

SQLFreeHandle(SQL_HANDLE_STMT, hStatement);

hStatement = NULL;

#else

mysql_real_query (&hDBC, sql, strlen(sql));

#endif

return 1;

}//end DB_Exec

int DB_Close(void)

{

#ifdef WIN32

SQLDisconnect(hDBC);

SQLFreeHandle(SQL_HANDLE_DBC, hDBC);

SQLFreeHandle(SQL_HANDLE_ENV, hDBEnv);

#else

mysql_close(&hDBC);

#endif

return 1;

}//DB_Close()

#ifndef WIN32

typedef struct tagMySQLRecordset {

MYSQL_RES hRecord;

void row;

int size;

int cols;

} MYSQLRecordset;

#endif

void DB_CleanQuery(void hRecordset)

{

if(!hRecordset) return;

#ifdef WIN32

__try {

SQLCloseCursor(hRecordset);

SQLFreeHandle(SQL_HANDLE_STMT, hRecordset);

hRecordset = NULL;

}__finally{

return;

}//end try

#else

MYSQLRecordset hRec = (MYSQLRecordset ) hRecordset;

mysql_free_result (hRec->hRecord);

free(hRec->row); hRec->row = NULL;

free(hRec->size); hRec->size = NULL;

free(hRec); hRec = NULL;

#endif

}//end DB_CleanQuery

int DB_Next(void hRecordset)

{

int r=0; if(!hRecordset) return 0;

#ifdef WIN32

r = SQLFetch(hRecordset);

r = r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO;

if(!r) {

DB_CleanQuery(hRecordset);

}//end if

#else

MYSQLRecordset hRec = (MYSQLRecordset ) hRecordset;

MYSQL_ROW row = mysql_fetch_row (hRec->hRecord);

if(row) {

for(int i=0; i<hRec->cols; i++) {

memcpy(hRec->row[i], row[i], hRec->size[i]);

}//next i

r = 1;

}else{

DB_CleanQuery(hRecordset);

r = 0;

}//end if

#endif

return r;

}//end DB_Next

int DB_params_count(const char fmt)

{

int i=0, j=0;

while(fmt[i]) {

if(fmt[i]=='%') j++;

i++;

}//end while

return j;

}//end DB_params_count

void DB_Query(char sql, const char fmt, )

{

int r=0;

int cols = DB_params_count(fmt);

if(cols<1) return NULL;

#ifdef WIN32

SQLHANDLE hStatement = NULL;

SQLAllocHandle(SQL_HANDLE_STMT, hDBC, &hStatement);

r = SQLExecDirect(hStatement,(unsigned char )sql, strlen(sql));

r = r==SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO;

if(!r) {

return NULL;

}//end if

#else

r = mysql_real_query (&hDBC, sql, strlen(sql));

if(r) return NULL;

MYSQL_RES rec = NULL;

rec = mysql_store_result (&hDBC);

if(!rec) return NULL;

MYSQLRecordset hStatement

= (MYSQLRecordset )malloc(sizeof(MYSQLRecordset));

if(!hStatement) return NULL;

memset(hStatement, 0, sizeof(MYSQLRecordset));

hStatement->hRecord = rec;

hStatement->cols = cols;

hStatement->row = (void )malloc(cols sizeof(void ));

memset(hStatement->row, 0, cols sizeof(void ));

hStatement->size = (int )malloc(cols sizeof(int));

memset(hStatement->size, 0, cols sizeof(int));

#endif

va_list ap; va_start(ap, fmt);

void var; char buf[32];

int i=0,j=0,k=0,sz=0; char c=0;

int len = strlen(fmt); int bad=1;

#ifdef WIN32

int col=1;

#else

int col=0;

#endif

while(fmt[i]) {

c = fmt[i++];

if(c != '%') continue;

c = fmt[i++];

var = va_arg(ap, void );

if(c == 'd') {

#ifdef WIN32

SQLBindCol(hStatement, col, SQL_C_SLONG, var, 4,NULL);

#else

hStatement->row[col] = var;

hStatement->size[col] = sizeof(long);

#endif

col++;

continue;

}//end if

if(c == 'f') {

#ifdef WIN32

SQLBindCol(hStatement, col, SQL_C_FLOAT, var, 4,NULL);

#else

hStatement->row[col] = var;

hStatement->size[col] = sizeof(float);

#endif

col++;

continue;

}//end if

memset(buf, 0, 32); bad=1;

for(j=i-1; j<len; j++) {

c = fmt[j];

if(c>='0' && c<='9') buf[j-i+1]=c;

if(c=='s') {bad=0; k=j+1; break;}

}//next j

if(bad) return NULL;

sscanf(buf, "%d", &sz);

#ifdef WIN32

SQLBindCol(hStatement, col, SQL_C_CHAR, var, sz, NULL);

#else

hStatement->row[col] = var;

hStatement->size[col] = sz;

#endif

col++;

i = k;

}//end while

va_end(ap);

return hStatement;

}//end DB_Rec

你好,是你啊,呵呵。SetTime不能接受COleDateTime作为参数,SetTime的定义如下:int SetTime(int nHour, int nMin, int nSec);从定义可知,SetTime只接受三个整形参数,即小时、分、秒。 COleDateTime类重载了=号,你可以通过等号设置时间,你可以这样写:m_starttime=COleDateTime(varValue[2]m_pdate->year,varValue[2]m_pdate->month,varValue[2]m_pdate->day,0,0,0);

以上就是关于怎么导数据库(怎么导数据库报告)全部的内容,包括:怎么导数据库(怎么导数据库报告)、C#下拉列表 从数据库获取数据类型的代码怎么写、在ASP.net里面 要从数据库里取出数据库字段值的ansi c码,再显示在页面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10203303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存