61.186.159.240/Wageex/Default.aspx一句话木马怎么查不到内容

&&&1&SQL语句大全&&&2&&&&3&--语&句&功&能&&&4&--数据操作&&&5&SELECT&--从数据库表中检索数据行和列&&&6&INSERT&--向数据库表添加新数据行&&&7&DELETE&--从数据库表中删除数据行&&&8&UPDATE&--更新数据库表中的数据&&&9&--数据定义&&10&CREATE&TABLE&--创建一个数据库表&&11&DROP&TABLE&--从数据库中删除表&&12&ALTER&TABLE&--修改数据库表结构&&13&CREATE&VIEW&--创建一个视图&&14&DROP&VIEW&--从数据库中删除视图&&15&CREATE&INDEX&--为数据库表创建一个索引&&16&DROP&INDEX&--从数据库中删除索引&&17&CREATE&PROCEDURE&--创建一个存储过程&&18&&&19&&&20&&&21&DROP&PROCEDURE&--从数据库中删除存储过程&&22&CREATE&TRIGGER&--创建一个触发器&&23&DROP&TRIGGER&--从数据库中删除触发器&&24&CREATE&SCHEMA&--向数据库添加一个新模式&&25&DROP&SCHEMA&--从数据库中删除一个模式&&26&CREATE&DOMAIN&--创建一个数据值域&&27&ALTER&DOMAIN&--改变域定义&&28&DROP&DOMAIN&--从数据库中删除一个域&&29&--数据控制&&30&GRANT&--授予用户访问权限&&31&DENY&--拒绝用户访问&&32&REVOKE&--解除用户访问权限&&33&--事务控制&&34&COMMIT&--结束当前事务&&35&ROLLBACK&--中止当前事务&&36&SET&TRANSACTION&--定义当前事务数据访问特征&&37&--程序化SQL&&38&DECLARE&--为查询设定游标&&39&EXPLAN&--为查询描述数据访问计划&&40&OPEN&--检索查询结果打开一个游标&&41&FETCH&--检索一行查询结果&&42&CLOSE&--关闭游标&&43&PREPARE&--为动态执行准备SQL&语句&&44&EXECUTE&--动态地执行SQL&语句&&45&DESCRIBE&--描述准备好的查询&&&46&---局部变量&&47&declare&@id&char(<span style="font-weight: color: #)&&48&--set&@id&=&''&&49&select&@id&=&'<span style="color: #ff01'&&&50&&&51&---全局变量&&52&---必须以@@开头&&53&&&54&&&55&&&56&--IF&ELSE&&57&declare&@x&int&@y&int&@z&int&&58&select&@x&=&<span style="font-weight: color: #&@y&=&<span style="font-weight: color: #&@z=<span style="font-weight: color: #&&59&if&@x&&&@y&&60&print&'x&&&y'&--打印字符串'x&&&y'&&61&else&if&@y&&&@z&&62&print&'y&&&z'&&63&else&print&'z&&&y'&&64&&&65&&&66&&&67&--CASE&&68&use&pangu&&69&update&employee&&70&set&e_wage&=&&71&case&&72&when&job_level&=&&#8217;<span style="font-weight: color: #&#8217;&then&e_wage*<span style="font-weight: color: #.08&&73&when&job_level&=&&#8217;<span style="font-weight: color: #&#8217;&then&e_wage*<span style="font-weight: color: #.07&&74&when&job_level&=&&#8217;<span style="font-weight: color: #&#8217;&then&e_wage*<span style="font-weight: color: #.06&&75&else&e_wage*<span style="font-weight: color: #.05&&76&end&&77&&&78&&&79&&&80&--WHILE&CONTINUE&BREAK&&81&declare&@x&int&@y&int&@c&int&&82&select&@x&=&<span style="font-weight: color: #&@y=<span style="font-weight: color: #&&83&while&@x&&&<span style="font-weight: color: #&&84&begin&&85&print&@x&--打印变量x&的值&&86&while&@y&&&<span style="font-weight: color: #&&87&begin&&88&select&@c&=&<span style="font-weight: color: #0*@x&+&@y&&89&print&@c&--打印变量c&的值&&90&select&@y&=&@y&+&<span style="font-weight: color: #&&91&end&&92&select&@x&=&@x&+&<span style="font-weight: color: #&&93&select&@y&=&<span style="font-weight: color: #&&94&end&&95&&&96&&&97&&&98&--WAITFOR&&99&--例&等待1&小时2&分零3&秒后才执行SELECT&语句&100&waitfor&delay&&#8217;<span style="font-weight: color: #:<span style="font-weight: color: #:<span style="font-weight: color: #&#8217;&101&select&*&from&employee&102&--例&等到晚上11&点零8&分后才执行SELECT&语句&103&waitfor&time&&#8217;<span style="font-weight: color: #:<span style="font-weight: color: #:<span style="font-weight: color: #&#8217;&104&select&*&from&employee&105&&106&&107&&108&&109&***SELECT***&110&&111&&112&&113&select&*(列名)&from&table_name(表名)&where&column_name&operator&value&114&ex:(宿主)&115&select&*&from&stock_information&where&stockid&=&str(nid)&116&stockname&=&'str_name'&&117&stockname&like&'%&find&this&%'&&118&stockname&like&'[a-zA-Z]%'&---------&([]指定值的范围)&119&stockname&like&'[^F-M]%'&---------&(^排除指定范围)&120&---------&只能在使用like关键字的where子句中使用通配符)&121&or&stockpath&=&'stock_path'&122&or&stocknumber&&&<span style="font-weight: color: #00&123&and&stockindex&=&<span style="font-weight: color: #&124&not&stock***&=&'man'&125&stocknumber&between&<span style="font-weight: color: #&and&<span style="font-weight: color: #0&126&stocknumber&in(<span style="font-weight: color: #,<span style="font-weight: color: #,<span style="font-weight: color: #)&127&order&by&stockid&desc(asc)&---------&排序,desc-降序,asc-升序&128&order&by&<span style="font-weight: color: #,<span style="font-weight: color: #&---------&by列号&129&stockname&=&(select&stockname&from&stock_information&where&stockid&=&<span style="font-weight: color: #)&130&---------&子查询&131&---------&除非能确保内层select只返回一个行的值,&132&---------&否则应在外层where子句中用一个in限定符&133&select&distinct&column_name&form&table_name&---------&distinct指定检索独有的列值,不重复&134&select&stocknumber&,"stocknumber&+&<span style="font-weight: color: #"&=&stocknumber&+&<span style="font-weight: color: #&from&table_name&135&select&stockname&,&"stocknumber"&=&count(*)&from&table_name&group&by&stockname&136&---------&group&by&将表按行分组,指定列中有相同的值&137&having&count(*)&=&<span style="font-weight: color: #&---------&having选定指定的组&138&&139&&140&&141&select&*&&142&from&table1,&table2&&143&where&table1.id&*=&table2.id&--------&左外部连接,table1中有的而table2中没有得以null表示&144&table1.id&=*&table2.id&--------&右外部连接&&145&&146&&147&&148&select&stockname&from&table1&149&union&[all]&-----&union合并查询结果集,all-保留重复行&150&select&stockname&from&table2&151&&152&&153&&154&***insert***&155&&156&&157&&158&insert&into&table_name&(Stock_name,Stock_number)&value&("xxx","xxxx")&159&value&(select&Stockname&,&Stocknumber&from&Stock_table2)---value为select语句&160&&161&&162&&163&***update***&164&&165&&166&&167&update&table_name&set&Stockname&=&"xxx"&[where&Stockid&=&3]&168&Stockname&=&default&169&Stockname&=&null&170&Stocknumber&=&Stockname&+&<span style="font-weight: color: #&171&&172&&173&&174&***delete***&175&&176&&177&&178&delete&from&table_name&where&Stockid&=&<span style="font-weight: color: #&179&truncate&table_name&-----------&删除表中所有行,仍保持表的完整性&180&drop&table&table_name&---------------&完全删除表&181&&182&&183&&184&***alter&table***&---&修改数据库表结构&185&&186&&187&&188&alter&table&database.owner.table_name&add&column_name&char(<span style="font-weight: color: #)&null&..&189&sp_help&table_name&----&显示表已有特征&190&create&table&table_name&(name&char(<span style="font-weight: color: #),&age&smallint,&lname&varchar(<span style="font-weight: color: #))&191&insert&into&table_name&select&&-----&实现删除列的方法(创建新表)&192&alter&table&table_name&drop&constraint&Stockname_default&----&删除Stockname的default约束&193&&194&&195&&196&***function(/*常用函数*/)***&197&&198&&199&&200&----统计函数----&201&AVG&--求平均值&202&COUNT&--统计数目&203&MAX&--求最大值&204&MIN&--求最小值&205&SUM&--求和&206&&207&&208&&209&--AVG&210&use&pangu&211&select&avg(e_wage)&as&dept_avgWage&212&from&employee&213&group&by&dept_id&214&--MAX&215&--求工资最高的员工姓名&216&use&pangu&217&select&e_name&218&from&employee&219&where&e_wage&=&220&(select&max(e_wage)&221&from&employee)&222&&223&&224&&225&--STDEV()&226&--STDEV()函数返回表达式中所有数据的标准差&227&&228&&229&&230&--STDEVP()&231&--STDEVP()函数返回总体标准差&232&&233&&234&&235&--VAR()&236&--VAR()函数返回表达式中所有值的统计变异数&237&&238&&239&&240&--VARP()&241&--VARP()函数返回总体变异数&242&&243&&244&&245&----算术函数----&246&&247&&248&&249&/***三角函数***/&250&SIN(float_expression)&--返回以弧度表示的角的正弦&251&COS(float_expression)&--返回以弧度表示的角的余弦&252&TAN(float_expression)&--返回以弧度表示的角的正切&253&COT(float_expression)&--返回以弧度表示的角的余切&254&/***反三角函数***/&255&ASIN(float_expression)&--返回正弦是FLOAT&值的以弧度表示的角&256&ACOS(float_expression)&--返回余弦是FLOAT&值的以弧度表示的角&257&ATAN(float_expression)&--返回正切是FLOAT&值的以弧度表示的角&258&ATAN2(float_expression1,float_expression2)&&259&--返回正切是float_expression1&/float_expres-sion2的以弧度表示的角&260&DEGREES(numeric_expression)&261&--把弧度转换为角度返回与表达式相同的数据类型可为&262&--INTEGER/MONEY/REAL/FLOAT&类型&263&RADIANS(numeric_expression)&--把角度转换为弧度返回与表达式相同的数据类型可为&264&--INTEGER/MONEY/REAL/FLOAT&类型&265&EXP(float_expression)&--返回表达式的指数值&266&LOG(float_expression)&--返回表达式的自然对数值&267&LOG10(float_expression)--返回表达式的以10&为底的对数值&268&SQRT(float_expression)&--返回表达式的平方根&269&/***取近似值函数***/&270&CEILING(numeric_expression)&--返回&=表达式的最小整数返回的数据类型与表达式相同可为&271&--INTEGER/MONEY/REAL/FLOAT&类型&272&FLOOR(numeric_expression)&--返回&=表达式的最小整数返回的数据类型与表达式相同可为&273&--INTEGER/MONEY/REAL/FLOAT&类型&274&ROUND(numeric_expression)&--返回以integer_expression&为精度的四舍五入值返回的数据&275&--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT&类型&276&ABS(numeric_expression)&--返回表达式的绝对值返回的数据类型与表达式相同可为&277&--INTEGER/MONEY/REAL/FLOAT&类型&278&SIGN(numeric_expression)&--测试参数的正负号返回0&零值1&正数或-1&负数返回的数据类型&279&--与表达式相同可为INTEGER/MONEY/REAL/FLOAT&类型&280&PI()&--返回值为&#960;&即3.7936&281&RAND([integer_expression])&--用任选的[integer_expression]做种子值得出0-1&间的随机浮点数&282&&283&&284&&285&&286&----字符串函数----&287&ASCII()&--函数返回字符表达式最左端字符的ASCII&码值&288&CHAR()&--函数用于将ASCII&码转换为字符&289&--如果没有输入0&~&255&之间的ASCII&码值CHAR&函数会返回一个NULL&值&290&LOWER()&--函数把字符串全部转换为小写&291&UPPER()&--函数把字符串全部转换为大写&292&STR()&--函数把数值型数据转换为字符型数据&293&LTRIM()&--函数把字符串头部的空格去掉&294&RTRIM()&--函数把字符串尾部的空格去掉&295&LEFT(),RIGHT(),SUBSTRING()&--函数返回部分字符串&296&CHARINDEX(),PATINDEX()&--函数返回字符串中某个指定的子串出现的开始位置&297&SOUNDEX()&--函数返回一个四位字符码&&298&--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0&值&&299&DIFFERENCE()&--函数返回由SOUNDEX&函数返回的两个字符表达式的值的差异&300&--<span style="color: #&两个SOUNDEX&函数返回值的第一个字符不同&301&--<span style="color: #&两个SOUNDEX&函数返回值的第一个字符相同&302&--<span style="color: #&两个SOUNDEX&函数返回值的第一二个字符相同&303&--<span style="color: #&两个SOUNDEX&函数返回值的第一二三个字符相同&304&--<span style="color: #&两个SOUNDEX&函数返回值完全相同&305&&306&&307&&308&&309&QUOTENAME()&--函数返回被特定字符括起来的字符串&310&/*select&quotename('abc',&'{')&quotename('abc')&311&运行结果如下&312&----------------------------------{&313&{abc}&[abc]*/&314&&315&&316&&317&REPLICATE()&--函数返回一个重复character_expression&指定次数的字符串&318&/*select&replicate('abc',&3)&replicate(&'abc',&-2)&319&运行结果如下&320&-----------&-----------&321&abcabcabc&NULL*/&322&&323&&324&&325&REVERSE()&--函数将指定的字符串的字符排列顺序颠倒&326&REPLACE()&--函数返回被替换了指定子串的字符串&327&/*select&replace('abc123g',&'123',&'def')&328&运行结果如下&329&-----------&-----------&330&abcdefg*/&331&&332&&333&&334&SPACE()&--函数返回一个有指定长度的空白字符串&335&STUFF()&--函数用另一子串替换字符串指定位置长度的子串&336&&337&&338&&339&&340&----数据类型转换函数----&341&CAST()&函数语法如下&342&CAST()&(&expression&&AS&&data_&type&[&length&])&343&CONVERT()&函数语法如下&344&CONVERT()&(&data_&type&[&length&],&&expression&&[,&style])&345&&346&&347&&348&select&cast(<span style="font-weight: color: #0+<span style="font-weight: color: #&as&char)&convert(varchar(<span style="font-weight: color: #),&getdate())&349&运行结果如下&350&------------------------------&------------&351&<span style="font-weight: color: #9&Jan&<span style="font-weight: color: #&<span style="font-weight: color: #00&352&&353&&354&&355&----日期函数----&356&DAY()&--函数返回date_expression&中的日期值&357&MONTH()&--函数返回date_expression&中的月份值&358&YEAR()&--函数返回date_expression&中的年份值&359&DATEADD(&datepart&&,&number&&,&date&)&&360&--函数返回指定日期date&加上指定的额外日期间隔number&产生的新日期&361&DATEDIFF(&datepart&&,&number&&,&date&)&362&--函数返回两个指定日期在datepart&方面的不同之处&363&DATENAME(&datepart&&,&&date&)&--函数以字符串的形式返回日期的指定部分&364&DATEPART(&datepart&&,&&date&)&--函数以整数值的形式返回日期的指定部分&365&GETDATE()&--函数以DATETIME&的缺省格式返回系统当前的日期和时间&366&&367&&368&&369&----系统函数----&370&APP_NAME()&--函数返回当前执行的应用程序的名称&371&COALESCE()&--函数返回众多表达式中第一个非NULL&表达式的值&372&COL_LENGTH(&'table_name'&,&&'column_name'&)&--函数返回表中指定字段的长度值&373&COL_NAME(&table_id&,&&column_id&)&--函数返回表中指定字段的名称即列名&374&DATALENGTH()&--函数返回数据表达式的数据的实际长度&375&DB_ID(['database_name'])&--函数返回数据库的编号&376&DB_NAME(database_id)&--函数返回数据库的名称&377&HOST_ID()&--函数返回服务器端计算机的名称&378&HOST_NAME()&--函数返回服务器端计算机的名称&379&IDENTITY(&data_type&[,&seed&increment])&[AS&column_name])&380&--IDENTITY()&函数只在SELECT&INTO&语句中使用用于插入一个identity&column列到新表中&381&/*select&identity(int,&1,&1)&as&column_name&382&into&newtable&383&from&oldtable*/&384&ISDATE()&--函数判断所给定的表达式是否为合理日期&385&ISNULL(&check_expression&,&&replacement_value&)&--函数将表达式中的NULL&值用指定值替换&386&ISNUMERIC()&--函数判断所给定的表达式是否为合理的数值&387&NEWID()&--函数返回一个UNIQUEIDENTIFIER&类型的数值&388&NULLIF(&expression1&,&&expression2&)&389&--NULLIF&函数在expression1&与expression2&相等时返回NULL&值若不相等时则返回expression1&的值&390&&391&&392&&393&&394&&395&&396&&397&sql中的保留字&398&&399&&400&&401&action&add&aggregate&all&&402&alter&after&and&as&&403&asc&avg&avg_row_length&auto_increment&&404&between&bigint&bit&binary&&405&blob&bool&both&by&&406&cascade&case&char&character&&407&change&check&checksum&column&&408&columns&comment&constraint&create&&409&cross&current_date&current_time&current_timestamp&&410&data&database&databases&date&&411&datetime&day&day_hour&day_minute&&412&day_second&dayofmonth&dayofweek&dayofyear&&413&dec&decimal&default&delayed&&414&delay_key_write&delete&desc&describe&&415&distinct&distinctrow&double&drop&&416&end&else&escape&escaped&&417&enclosed&enum&explain&exists&&418&fields&file&first&float&&419&float4&float8&flush&foreign&&420&from&for&full&function&&421&global&grant&grants&group&&422&having&heap&high_priority&hour&&423&hour_minute&hour_second&hosts&identified&&424&ignore&in&index&infile&&425&inner&insert&insert_id&int&&426&integer&interval&int1&int2&&427&int3&int4&int8&into&&428&if&is&isam&join&&429&key&keys&kill&last_insert_id&&430&leading&left&length&like&&431&lines&limit&load&local&&432&lock&logs&long&longblob&&433&longtext&low_priority&max&max_rows&&434&match&mediumblob&mediumtext&mediumint&&435&middleint&min_rows&minute&minute_second&&436&modify&month&monthname&myisam&&437&natural&numeric&no&not&&438&null&on&optimize&option&&439&optionally&or&order&outer&&440&outfile&pack_keys&partial&password&&441&precision&primary&procedure&process&&442&processlist&privileges&read&real&&443&references&reload&regexp&rename&&444&replace&restrict&returns&revoke&&445&rlike&row&rows&second&&446&select&set&show&shutdown&&447&smallint&soname&sql_big_tables&sql_big_selects&&448&sql_low_priority_updates&sql_log_off&sql_log_update&sql_select_limit&&449&sql_small_result&sql_big_result&sql_warnings&straight_join&&450&starting&status&string&table&&451&tables&temporary&terminated&text&&452&then&time&timestamp&tinyblob&&453&tinytext&tinyint&trailing&to&&454&type&use&using&unique&&455&unlock&unsigned&update&usage&&456&values&varchar&variables&varying&&457&varbinary&with&write&when&&458&where&year&year_month&zerofill&459&&460&&查看全文&&461&&462&分类:&(&一般分类&)&::&评论&(<span style="font-weight: color: #)&::&静态链接网址&::&引用&(<span style="font-weight: color: #)&&463&常用SQL命令和ASP编程&464&发表人:kendy517&|&发表时间:&2007年二月09日,&<span style="font-weight: color: #:<span style="font-weight: color: #&465&在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL语句,如下:&&466&&467&SQL常用命令使用方法:&468&&469&(<span style="font-weight: color: #)&数据记录筛选:&470&&471&sql="select&*&from&数据表&where&字段名=字段值&order&by&字段名&[desc]"&472&&473&sql="select&*&from&数据表&where&字段名&like&%字段值%&order&by&字段名&[desc]"&474&&475&sql="select&top&<span style="font-weight: color: #&*&from&数据表&where&字段名&order&by&字段名&[desc]"&476&&477&sql="select&*&from&数据表&where&字段名&in&(值1,值2,值3)"&478&&479&sql="select&*&from&数据表&where&字段名&between&值1&and&值2"&480&&481&(<span style="font-weight: color: #)&更新数据记录:&482&&483&sql="update&数据表&set&字段名=字段值&where&条件表达式"&484&&485&sql="update&数据表&set&字段1=值1,字段2=值2&&#8230;&#8230;&字段n=值n&where&条件表达式"&486&&487&(<span style="font-weight: color: #)&删除数据记录:&488&&489&sql="delete&from&数据表&where&条件表达式"&490&&491&sql="delete&from&数据表"&(将数据表所有记录删除)&492&&493&(<span style="font-weight: color: #)&添加数据记录:&494&&495&sql="insert&into&数据表&(字段1,字段2,字段3&&#8230;)&valuess&(值1,值2,值3&&#8230;)"&496&&497&sql="insert&into&目标数据表&select&*&from&源数据表"&(把源数据表的记录添加到目标数据表)&498&&499&(<span style="font-weight: color: #)&数据记录统计函数:&500&&501&AVG(字段名)&得出一个表格栏平均值&502&COUNT(*|字段名)&对数据行数的统计或对某一栏有值的数据行数统计&503&MAX(字段名)&取得一个表格栏最大的值&504&MIN(字段名)&取得一个表格栏最小的值&505&SUM(字段名)&把数据栏的值相加&506&&507&引用以上函数的方法:&508&&509&sql="select&sum(字段名)&as&别名&from&数据表&where&条件表达式"&510&set&rs=conn.excute(sql)&511&&512&用&rs("别名")&获取统的计值,其它函数运用同上。&513&&514&(<span style="font-weight: color: #)&数据表的建立和删除:&515&&516&CREATE&TABLE&数据表名称(字段1&类型1(长度),字段2&类型2(长度)&&#8230;&#8230;&)&517&&518&例:CREATE&TABLE&tab01(name&varchar(<span style="font-weight: color: #),datetime&default&now())&519&&520&DROP&TABLE&数据表名称&(永久性删除一个数据表)&521&&522&&523&在ASP编程时,下面这些语句是必须知道的:&524&&525&<span style="font-weight: color: #.连接数据库&526&a.&ASP与Access数据库连接:&527&&528&&%@&language=VBs&cript%&&529&&%&530&dim&conn,mdbfile&531&mdbfile=server.mappath("数据库名称.mdb")&532&set&conn=server.createobject("adodb.connection")&533&conn.open&"driver={microsoft&access&driver&(*.mdb)};uid=pwd=数据库密码;dbq="&mdbfile&534&%&&535&&536&b.&ASP与SQL数据库连接:&537&&538&&%@&language=VBs&cript%&&539&&%&540&dim&conn&541&set&conn=server.createobject("ADODB.connection")&542&con.open&"PROVIDER=SQLOLEDB;DATA&SOURCE=SQL服务器名称或IP地址;UID=PWD=数据库密码;DATABASE=数据库名称&543&%&&544&&545&建立记录集对象:&546&&547&set&rs=server.createobject("adodb.recordset")&548&rs.open&SQL语句,conn,<span style="font-weight: color: #,<span style="font-weight: color: #&549&&550&<span style="font-weight: color: #.&记录集对象的方法:&551&&552&rs.movenext&将记录指针从当前的位置向下移一行&553&rs.moveprevious&将记录指针从当前的位置向上移一行&554&rs.movefirst&将记录指针移到数据表第一行&555&rs.movelast&将记录指针移到数据表最后一行&556&rs.absoluteposition=N&将记录指针移到数据表第N行&557&rs.absolutepage=N&将记录指针移到第N页的第一行&558&rs.pagesize=N&设置每页为N条记录&559&rs.pagecount&根据&pagesize&的设置返回总页数&560&rs.recordcount&返回记录总数&561&rs.bof&返回记录指针是否超出数据表首端,true表示是,false为否&562&rs.eof&返回记录指针是否超出数据表末端,true表示是,false为否&563&rs.delete&删除当前记录,但记录指针不会向下移动&564&rs.addnew&添加记录到数据表末端&565&rs.update&更新数据表记录&566&&567&附:&568&&569&常数&常数值&说明&570&--------------------------------&571&adLockReadOnly&<span style="font-weight: color: #&缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法&572&adLockPrssimistic&<span style="font-weight: color: #&当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。&573&adLockOptimistic&<span style="font-weight: color: #&当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。&574&adLockBatchOptimistic&<span style="font-weight: color: #&当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。&575&&576&&577&分类:&(&一般分类&)&::&评论&(<span style="font-weight: color: #)&::&静态链接网址&::&引用&(<span style="font-weight: color: #)&&578&SQLSERVER2000功略(<span style="font-weight: color: #)---自动化管理&579&发表人:kendy517&|&发表时间:&2007年二月09日,&<span style="font-weight: color: #:<span style="font-weight: color: #&580&面对大量反复的工作,即使一个优秀的管理员也会感到很大的负担。但为了保持服务器维持在最佳运行状态,这些又时不得不作的工作。这时,SQLSERVER想你所想,提供了自动化的管理措施。在我们工作之前,我们需要了解自动化背后的好助手&#8212;SQLSERVER&Agent,这个就是SQLSERVER的代理程序,他是运行在后台的服务,可谓是幕后英雄!那他有什么功能呢,如下:&581&&#9312;&作业调度。&582&&#9313;&执行作业。&583&&#9314;&产生报警。&584&&#9315;&在指定的事件发生时,通知指定的管理员或操作员。&585&&586&说到这里,我们就谈谈自动化中的角色:操作员,作业,警报。&587&操作员:所谓的操作员只是人名与其通信方式(可有电子邮件地址,呼叫器或NET&SEND的目的地三种)的设置而已。只要将服务器管理人员的联络方式都以操作员设置妥当时,当SQLSERVER遇到各种需要处理的状况,SQLSERVER&Agent就会通过指定的方式通知管理人员前来完成,以达到及时的排除各种问题。&588&作业:作业是SQLSERVER&Agent诸多功能中最常用的。所谓作业就是可让SQLSERVERAgent自动执行的一组操作,它既可以自动执行(这个就涉及到调度),也可以手动执行。在定义作业必须注意以下内容:作业的名称,作业的种类,作业的所有者,作业的说明文字。&589&警报:就是指针对特殊的事件,要发信给操作员的设置。在作业的设置中的&#8220;通知&#8220;页面中指定了要将作业执行状态通知操作员时,其实就是在设置警报(如下图)&590&&591&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&592&在定义警报时,可有两种设置事件的方式,一种是指明了针对某特定事件,也就是只要在服务器发生该事件。另一种是指定事件的严重度(Serverity),只要是达到指定严重程度的所有事件,SQLSERVER&Agent就会发信通知操作员。&593&了解了概念,就是动手的时候了,这些我们就以图片给与说明,第一个我们新建&#8220;操作员&#8220;,过程如下:&594&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&595&&596&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&597&接着新建&#8220;作业&#8220;过程如下:&598&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&599&&600&&601&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&602&再来看看&#8220;警报&#8220;的创建过程:&603&&604&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&605&&606&&607&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&608&&609&(注意在建立警报的&#8220;响应&#8221;栏目里,对应着相应的作业和操作员)&610&谈过了这些功能,是不是觉得真是很方便呀,当然了良好的运用不仅仅就这简单的几步,这需要大家在应用中适时的总结以适应我们的需要。现在,我们再谈论一个SQLSERVER&611&的另一项不错的功能&#8212;脚本。&612&所谓的利用脚本,就是可以将数据库对象或服务器中的其他对象以脚本(Script)方式存入文件,也就是存成SQL程序以供我们继续利用。&613&同样脚本也可以用于这里的自动化管理。例如:我们可以将操作员,作业和警报等对象存成Script文件后,再拿到别的服务器上加以利用。这是不是在不同的服务器上创建相同的操作员等重复的工作了。这就是脚本的效率所在。&614&如果需要存为脚本文件,可以在企业管理器中右击相应的对象在&#8220;所有任务&#8220;/&#8220;生成SQL脚本&#8221;命令,设置确定即可。&615&谈了上面的自动化管理的方式是很实用的,但似乎是不是缺乏全面性,要为自己的服务器构建一套完善的自动化维护机制,可能需要花费不少心力,但是将大部分的日常维护工作适度的自动化,多少可以减轻管理上的负担,为此SQLSERVER还提供了一项可以将整套数据库维护工作自动化的功能,这就是数据库的维护计划。&616&我们可以在企业管理器中执行&#8220;工具&#8220;/数据库维护计划器,这样就见到了如下界面,依次设置即可。&617&这次的讨论就说到这里,关于自动化管理,我不用说大家都明白,合理的设置会给你的工作带来什么样的影响,好好体会,让工作更加轻松!&618&&619&&620&分类:&(&一般分类&)&::&评论&(<span style="font-weight: color: #)&::&静态链接网址&::&引用&(<span style="font-weight: color: #)&&621&SQLSERVER2000功略(<span style="font-weight: color: #)-数据库的登陆及其用户权限&&622&发表人:kendy517&|&发表时间:&2007年二月09日,&<span style="font-weight: color: #:<span style="font-weight: color: #&623&SQLSERVER2000功略(<span style="font-weight: color: #)-数据库的登陆及其用户权限&624&SQLSERVER2000功略-数据库的登陆及其用户权限&625&说过了两章纯粹的理论,是不是有乏味的感觉,好,我们从这一讲就进入实质的管理阶段。首先,我们讨论的是SQLSERVER安全管理中的登陆和权限问题。&626&SQLSERVER的登陆是安全管理的第一关。这个决定了那些人可以使用SQLSERVER(就像进屋时的房门钥匙)。关于登陆控制,SQLSERVER则采用了两种不同的检查方式:windows验证和windows,sqlserver混合验证。前者就是我们登陆windows时的用户帐号,而后者则是在保留前者的前提下也允许SQLSERVER中建立的登陆帐号。这也是为用户提供方便的选择。&627&我们拥有了登陆的帐号,就可以进入SQLSERVER的控制中心,那我们可以做些什么哪?这个肯定是有控制的进行的。SQLSERVER中的访问权限分为两方面,分别是:服务器本身的操作权限和数据库的访问权限。我们分别加以简介:&628&服务器的操作权限是从真个服务器来说的,是面向所有数据库的定义。例如:是否有权创建或者删除登陆帐号,是否可以建立数据库等等。这些也就是通过设置服务器角色(server&role)来实现的。SQLSERVER内建了七个服务器角色,分别代表七种服务器工作的操作权。&629&数据库的访问权限就是针对某一个数据库而言的。他可以分为两层,第一层是限制何人访问数据库,第二层限制可访问数据库中的那些表,视图和存储过程,以及是否可以用select,insert,update等等。这个权限往往是通过数据库角色得以实现的。&630&(服务器角色不可以自定义,数据库角色可以自定义)&631&仅仅知道上面这些概念是不行的,因为SQLSERVER中的权限是比较复杂的,因为彼此之间可能存在某些权链。所以仅仅概念是不容易说清的,我们讨论的就是基础的东西,懂得了这些在真正工作中才可以更好的掌握管理技能。我们简单的谈谈权链的问题吧!&632&由于每个对象都有他自己的拥有权信息,这个对象可能和其他对象存在一定的依存关系,比如:一个视图是从另外一个视图建立过来的。这些相互依存的对象关系可能拉的很长,因此相依存的对象的拥有权就形成一个由上而下的链结,这在SQLSERVER中就称作拥有权链(Ownership&Chain)。正是由于这样,可能所产生的访问权限变得非常复杂。所以,我们在这里提出以视图和存储过程来限制访问范围。通过视图确定用户可以访问的内容,然后把视图的相关权限赋予具体的用户,这样可以有效的减轻权限设置的工作量(特别是用户访问范围跨度较大的情况下)。除了视图,我们也可以自定义存储过程来对数据的访问加以限制,即把一组可查询某特定数据的语句存成存储过程,然后将其execute权限设置给用户,用户就可以执行他来取得数据了。这样省去了很多复杂的授权过程,是不是很方便呀!&633&简单的说了说这些,我们再来谈谈SQLSERVER中特殊的东西:sa帐号,public数据库角色,guest数据库用户。&634&Sa是SQLSERVER默认的管理员帐号,主要是为了向下兼容而设置的。这个也就是安装好SQLSERVER时就有的帐号,而且权限极大,所以在安装过程中最好把他的密码进行设置,不要为空。这个帐号相当于服务器角色中的system&administrator,而且不可以删除。&635&Public数据库角色是一个公共的数据库角色,也就是说当你新建一个数据库角色的时候,默认的就属于这个角色。这个也是不可删除的。所以为了安全期间,我们对public数据库对象不要赋予过多的权限(除非有这个需要)。&636&Guest是一个特殊的数据库用户,类似于windows&NT/<span style="color: #00下的guest帐号,都是给未经授权的用户提供某种程度的访问权限。如果不需要这个用户可以将其删除。&637&说了这些概念,其实现都是通过&#8220;企业管理器&#8221;实现的,我们就这些谈谈用相应的系统存储过程:&638&登陆管理:sp_addlogin&新增帐号&639&sp_droplogin&删除帐号&640&sp_grantlogins&允许某windows帐号访问&641&sp_denylogins&禁止某windows帐号访问&642&sp_revokelogins&删除某windows帐号访问&643&sp_helplogin&查看帐号信息&644&sp_addsrvrolemember&将某用户添加到服务器角色&645&sp_dropsrvrolemember&将某用户从数据库角色中删除&646&sp_helpsrvrole&查看服务器角色的信息&647&&648&数据库用户管理:sp_grantaccess&建立数据库用户&649&sp_revokedbaccess&删除数据库用户&650&sp_helpuser&查看用户信息&651&&652&数据库角色管理:sp_addrole&建立数据库角色&653&sp_addrolemember&将用户加入数据库角色&654&sp_helprole&查看数据库角色信息&655&sp_helprolemember&查看某数据库角色的所有成员&656&sp_droprole&删除角色&657&sp_droprolemember&删除角色中的某一成员&658&好了,看了上面的不要感觉麻烦呀,这可是让你高效工作的宝贝呀,熟能生巧,我们一起联系多了,其实掌握就觉得很轻松了!继续努力!:)&659&&660&&661&分类:&(&一般分类&)&::&评论&(<span style="font-weight: color: #)&::&静态链接网址&::&引用&(<span style="font-weight: color: #)&&662&SQLSERVER2000攻略(<span style="font-weight: color: #)-工作流程篇&663&发表人:kendy517&|&发表时间:&2007年二月09日,&<span style="font-weight: color: #:<span style="font-weight: color: #&664&&665&SQLSERVER2000是windows平台上一个重要的数据管理工具。了解数据库的朋友对他一定很熟悉。我们就此在这里作一系列的讨论,希望通过这次的交流我们对SQLSERVER2000有个深刻的理解。首先,我们探讨一下他的工作流程,这可是工作的基础呀,好,我们开始了!&666&&667&简单的说,SQLSERVER2000是个采用主从结构的关系数据库系统。哈,是不是太简单,毕竟现在市面上的数据库产品几乎都是这个结构。我们来深入一点,所谓SQLSERVER的主从结构(Client/Server),就是由SQLSERVER扮演存放数据和提供数据给客户端的角色,当用户要取用数据时,则可调用各种不同的客户端应用程序,通过SQLSERVER所支持的接口,向SQLSERVER提供请求,然后取得数据库中的数据并返回给用户。这个过程应该好理解吧。&668&&669&看了这个是不是觉得很easy呀!其实,这只是比较传统的双层式Client/Server结构,近年来三层式或者多层式主从结构的应用正在流行。例如:配合微软的BackOffice中的其他服务器产品,即可建立多层主从运算模式。&670&了解了基本的数据流程,那是不是要问是什么实现客户端与服务器之间的沟通哪?这个是个比较有意义的问题。我们知道了作什么,就应改知道他是怎么做的。所谓,打破沙锅问到底!我们说一下工作原理:SQLSERVER提供了多种不同的接口让客户端(应用程序)顺利与服务器进行交流,在此接口的基础上,由NET-Library(网络函数库)建立两边IPC(Interprocess&Commication)通讯管道来进行工作。具体的说就是:当客户端程序使用某种接口向服务器提出查询请求时,数据库接口驱动程序调用客户端的Net-library,而Net-library则调用IPC应用程序接口产生IPC,通过IPC送达服务端,服务端接受请求后经SQLSERVER处理,以同样的方式将结果送回客户端。(这个过程有两个情况,Client和Server在同一台计算机上,Net-library会使用local&IPC,如果是网络存取,则会有双方所使用的网络协议产生Remote&IPC)图示如下:&671&了解了外部工作机制,咱们看看服务端是怎么分工的,毕竟多数的数据工作是由服务器完成的。整体上说,整个SQLSERVER的数据管理系统分为如下几个组件:&672&&#9650;Open&Data&Service(ODS):负责处理由Net-library送来的查询请求,ODS会调用SQLSERVER的内部功能来完成客户端的需求。&673&&#9650;SQL&Server&Service:这个SQLSERVER的&#8220;心脏&#8221;负责管理我们的数据库,以及所有建立,查询和修改的数据库的操作。此数据库管理系统的核心又分为几个单元,其中最主要的两个单元就是负责解SQL语法和安排查询执行计划等工作的关系引擎(Relational&Engine),以及负责管理数据库文件和文件读写等工作的存储引擎(Storage&Engine)。这两个组件之间则是通过OLE&DB接口来通信的。&674&&#9650;SQL&SERVER&Agent(SQL&SERVER代言程序):可以说此组件是重要性仅次于SQL&SERVER&Service的组件,这个服务提供了有关工作编排,以及服务器有问题时通知管理员等相关功能的支持。&675&&#9650;MS&DTC&Service:如果将SQL&SERVER安装在多台服务器上,要让客户端能够在单个事务中对不同的服务器(数据源)进行处理,就须借助MS&DTC(Microsoft&Distributed&Transaction&Coordinator)Service来负责这类分布式事务的协调工作,以确保在各个数据库上的更改操作能正确完成。&676&了解了上面的过程,是不是有点印象了,来我们理清一下思路,问一下自己:客户端的工作请求怎么传递给服务器的?服务器又是怎么处理相应的请求的?认真想想这两个问题,其实你会觉得原来&#8220;不过如此&#8221;!^_^&677&&678&&679&&680&&681&分类:&(&一般分类&)&::&评论&(<span style="font-weight: color: #)&::&静态链接网址&::&引用&(<span style="font-weight: color: #)&&682&SQLSERVER中使用存储过程(Stored&Procedure)&683&发表人:kendy517&|&发表时间:&2007年二月09日,&<span style="font-weight: color: #:<span style="font-weight: color: #&684&&685&随着SQLSERVER不断的学习,认识的深入,我们会发现越来越多的功能呈现在我们面前,这些功能都是十分强大的,在我们应用中发挥着十分有意义的作用,也因此感知作为一个大型的数据库管理系统的魅力所在。从这一篇开始,我们着手讨论&#8220;存储过程&#8220;,&#8221;触发器&#8220;,&#8221;游标&#8220;,&#8221;事务&#8220;和&#8221;锁&#8220;的应用,如果熟练的掌握了这些,我想驾驭SQLSERVER的能力将是一个新的层次。学习是为了应用,掌握就是为了解决问题。希望通过我们一起的学习,我们都可以很好的利用这个工具为我们服务。这是我们学习的目的也是我们的奋斗目标。好,我们继续吧!&686&说起存储过程,我们先了解他的概念,这是我们讨论必走的第一步:存储过程就是将所需要的工作,预先以SQL程序写好,命名后进行保存,以后需要作这些工作时可以使用EXECUTE指令来调用,即可自动完成相应任务。这里的存储过程也是自动化的一个方面,总之就是为了方便管理的一种措施。让我来说说他的优点吧:&687&<span style="font-weight: color: #.执行效率高(这点不容置疑)&688&<span style="font-weight: color: #.统一的操作流程:也就是通过存储过程的操作避免了一些操作过程中可能无意中认为的错误,只要确定了制作存储过程时是正确地,以后在调用过程中就不用担心了。大家使用时流程是一样的。&689&<span style="font-weight: color: #.重复使用&690&<span style="font-weight: color: #.安全性:这一点我们在数据库的安全策略里讨论过,可以参考前边的文章。也就是说:我们可以利用存储过程作为数据存储的管道。可以让客户在一定的范围内对数据进行操作。另外,存储过程是可以加密的,这样别人就看不到他的内容了。&691&存储过程分为三类:&692&系统存储过程(System&stored&Procedure)sp_开头,为SQLSERVER内置存储过程:&693&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&694&扩展存储过程(Extended&stored&Procedure),也就是外挂程序,用于扩展SQLSERVER的功能,以sp_或者xp_开头,以DLL的形式单独存在。&695&&696&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&697&&#916;(观察上面的你会发现系统存储过程和扩展存储过程都是在master数据库中。sp_开头的可是全局的,任何一个数据库都可以直接调用的。)&698&用户定义的存储过程(User-defined&stored&Procedure),这个就是用户在具体的数据库中自己定义的,名字最好不要以sp_和xp_开头,防止混乱。&699&了解了基本概念,就到应用的阶段了。&700&首先创建一个存储过程(在pubs数据库中),我们命名为MyProce示例代码如下(功能为向stores表中插入stor_id,stor_name两个字段值):&701&&702&create&procedure&MyProce&703&@param1&char(<span style="font-weight: color: #),&@param2&varchar(<span style="font-weight: color: #)&--定义参数,作为存储过程的接口&704&with&encryption&--存储过程加密&705&as&insert&stores&(stor_id,stor_name)&values(@param1,@param2)&706&go&707&&708&我们如此调用:&709&&710&exec&MyProce&&#8216;<span style="font-weight: color: #1111&#8217;,&#8217;Leijun&#8217;book&#8217;&--参数赋值,调用存储过程&711&&712&用企业管理器创建如图所示:&713&&714&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&715&如果我们要修改,可以查看相应的存储过程的&#8220;属性&#8220;,如上图在&#8221;文本&#8220;窗体中修改。&716&但是注意我们这个因为用了with&encryption语句,所以,打开时将有下面的提示,不允许查看,这也就是加密。&717&&718&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&719&看了上面的是不是有所了解了,其实创建时还有其他的参数可以使用,我们这里只是一个简单的例子,更多的应用需要我们在实践中不断的总结,这样才能更加灵活的应用。&下面我们再来看一个创建的例子(这个的作用是在authors表中查找一个人名,表中把一个名字分为两字段存储了,如果查到了,打印&#8220;查有此人ID:&#8221;及其au_id字段值):&720&&721&CREATE&procedure&SearchMe&722&@param1&varchar(<span style="font-weight: color: #),@param2&varchar(<span style="font-weight: color: #)&723&as&724&select&@param2=au_id&725&from&authors&726&where&au_fname+au_lname=@param1&&727&if&@@rowcount&<span style="font-weight: color: #&--全局变量,记录影响到的行&728&print'查有此人ID:'+@param2&729&GO&730&&731&我们这样执行:Exec&SearchMe&&#8216;leijun&#8217;,null&732&由于查找到了所以显示如下:&733&&734&screen.width-<span style="font-weight: color: #3)this.width=screen.width-<span style="font-weight: color: #3"&border="<span style="font-weight: color: #"&galleryimg="no"&/&&735&&736&例子就简单列举这些,因为他的灵活性很大,所以我们只简单的说明一下,如果要更好的利用,这就需要我们不断的摸索了。&737&下面我们谈谈使用过程中我了解到的注意事项:&738&<span style="font-weight: color: #.在存储过程中,有些建立对象的语句是不可使用的:create&default,create&trigger,create&procedure,create&view,create&rule.&739&<span style="font-weight: color: #.在同一数据库中,不同的所有者可以建立相同名称的对象名。例如:a.sample,b.sample,c.sample三个数据表可以同时存在。如果存储过程中未指明对象的所有者(例如存储过程中的语句select&*&from&sample,这句中的sample没有指明所有者),在执行的过程中默认的所有者查找顺序是:相应的存储过程的建立者-&相应数据库的所有者。如果这个查找过程中没有把所有者确定下来,系统就要报错。&740&(这里我额外插一句:如果需要严密的数据操作,在任何操作中尽量加上所有者,例如leijun.sample)&741&<span style="font-weight: color: #.在存储过程名称前边添加#或者##,所建立的存储过程则是&#8220;临时存储过程&#8220;(#是局部临时存储过程,##是全局临时存储过程)。&742&上面的都是一些容易忽略的,特别是第二条,我们一定的认真思考,也许这些有意无意的忽略是我们造成错误的根源!!&743&转载自:leijun&744&&745&&746&&747&分类:&(&一般分类&)&::&评论&(<span style="font-weight: color: #)&::&静态链接网址&::&引用&(<span style="font-weight: color: #)&&748&[Php+APACHE+MySQL][或在windows已装IIS下的]配置&&749&发表人:kendy517&|&发表时间:&2007年二月09日,&<span style="font-weight: color: #:<span style="font-weight: color: #&750&&751&前段时间的文章:&752&http://www.blueidea.com/bbs/NewsDetail.asp?id=<span style="font-weight: color: #72560&753&&754&可以一看,但是其对本篇价值是&<span style="font-weight: color: #%.希望本篇能补充之缺陷.&755&&756&一:&下载安装程序&757&&758&Apache可以从http://httpd.apache.org/download.cgi下载&759&PHP可以从http://www.php.net下载.&760&mysql在www.mysql.com/下载.&761&&762&二&安装程序(以下以2k为例说明,其他windows系统的类似)&&763&&764&首先如果您安装了IIS的话,Internet&服务管理器---&默认web站点--&右击---&停止.&765&&766&<span style="font-weight: color: #:&先是Apache,有4.2M左右,没啥说的,点击安装到D盘,为了方西系统重装,D盘方便.一路会很容易的安装的成功.&&767&&768&<span style="font-weight: color: #:&php&<span style="font-weight: color: #.1.X的安装版是&<span style="font-weight: color: #.44m&左右,可以点击安装,选择服务器的时候选择apache,不过,没有组建扩展,还有下载扩展的dll文件包(有的&<span style="font-weight: color: #&m左右,不一定),复制到C:WINNT目录下面的.可以直接复制到d盘文件下面也可以,笔者不知道为什么选择了第一种.&769&&770&<span style="font-weight: color: #:&MySQL我下载的是&<span style="font-weight: color: #.1.7版本,&<span style="font-weight: color: #.7M左右,也是一路点击,然后启动之.&771&&772&三:&必要设置&773&&774&如果我们要使用CGI二进制文件,那么我们要将如下指令插入到&Apache&的&httpd.conf&配置文件中,以设置&CGI&二进制文件:&775&&776&PHP&以&CGI&方式安装到&Apache:&777&&778&ScriptAlias&/php/&"D:/php/"&779&AddType&application/x-httpd-php&.php&780&Action&application/x-httpd-php&"/php/php.exe"&781&&782&如果我们想把&PHP&作为&Apache&<span style="font-weight: color: #.0&的模块,那么就一定要移动&php4ts.dll&到&winnt/system32(Windows&NT/<span style="font-weight: color: #00)或&windows/system32(Windows&XP),覆盖原有文件(如果有的话),对于&PHP&<span style="font-weight: color: #,这个文件是&php5ts.dll。然后我们要插入如下两行到&httpd.conf&中,以使我们的&PHP&作为&Apache&的&PHP-Module&安装:&783&&784&&785&&786&PHP&以模块方式安装到&Apache:&787&&788&&789&;&For&PHP&<span style="font-weight: color: #&do&something&like&this:&790&LoadModule&php5_module&"c:/php/php5apache2.dll"&791&AddType&application/x-httpd-php&.php&792&&793&添加这&<span style="font-weight: color: #&行代码到&httpd.conf&,httpd.conf&文件可通过计算机搜索找出.哈哈.&794&&795&再在里面找出:&&796&&797&DocumentRoot&"D:/web/web/php"&798&相关行,可以修改成自己的php网站根目录.&799&&800&&801&如果你把那些扩展都复制到&C:winnt下面的话.&802&&803&&804&测试:&html&&805&&body&&806&&?&phpinfo();&?&&807&&/body&&808&&html&&809&应该:正常可以看到的.&810&&811&关于连接MySQL的,请看:&812&http://www.blueidea.com/bbs/NewsDetail.asp?id=<span style="font-weight: color: #08054&813&&814&&815&&816&为了您的IIS能继续工作,请&在internet信息服务&---&&默认web站点--&右击属性---&&IP地址:192.168.1.105&,&端口:&81&,否则会提示端口以已使用之类的信息.&817&&818&完毕,有问题请马上提出,早安.&819&&820&天气:大雨,ccdot发表于2006-<span style="font-weight: color: #-<span style="font-weight: color: #&<span style="font-weight: color: #:<span style="font-weight: color: #:<span style="font-weight: color: #,阅读了460次,共有个1回复.&821&花了大半天的时间,终于把全新的php平台建了起来,历经了太多错误和反复,看了网上无数篇教材,可仍错漏百出,唉,真不知道那些写教程的人在写什么。不过苍天不负有心人,摸索了好久,最终还是成功了.:)&..写下来,以后也有个参照。&&822&&823&调试环境如下:&&824&OS:win2000&sp4&&825&apache_2052-win32&(msi格式)&&826&php-<span style="font-weight: color: #.0.<span style="font-weight: color: #-Win32&(zip包)&&827&mysql-<span style="font-weight: color: #.0.<span style="font-weight: color: #-alpha-snapshot-win&(zip包)&&828&&829&所有程序(apache,php,mysql)安装在F:/server目录下。&&830&&831&&832&&833&&#9679;解压php到f:/serverphp文件夹中。&&834&PHP.ini的一些配置&&835&.doc_root&=&F:/phpf&//默认php文档位置,设为apache中一样,偶没设,却也行!!&&836&.extension_dir&=&F:/server/php/ext&//扩展文件位置,用作支持mysql,一定要设正确&&837&.session.save_path&=&c:/temp&//session存储位置&&838&.cgi.force_redirect=<span style="font-weight: color: #&//如果出现Security&Alert!&The&PHP&CGI&cannot&be&accessed&directly的警告,设置此值&&839&.register_global,把它设置为on. //避免post变量不能传递&&840&.display_errors&=&on&//显示错误消息&&841&&842&&#9679;装好apache到f:/server/apache2,首先让Apache2能&支持php5&&843&&844&<span style="font-weight: color: #、打开apache的配置文件,添加如下两行(php安装在F:/server/php下)&&845&.AddType&application/x-httpd-php&.php&&846&.LoadModule&php5_module&F:/server/php/php5apache2.dll&&847& 这样就已经可以支持了php了,不知网上的教程里为什么还要把那些dll文件复制得满天飞(版本是相同的),郁闷。&&848&&849&<span style="font-weight: color: #、httpd.conf的一些其他必要设置:&&850&.索引页名称&DirectoryIndex&index.php&&851&.默认文档位置,设置&DocumentRoot路径&&852&&853&<span style="font-weight: color: #、网上流传的配置,我没有copy,但也成功了。&&854&.把php5ts.dll复制到winnt目录或system目录中&&855&&856&&#9679;安装mysql到f:/servermysql中。运行bin目录中winmysqladmin.exe。设置你的用户名和密码,端口不必更改。&&857&&858&&#9679;接着让PHP支持Mysql数据库&&859&.将安装目录中的php.ini-recommended复制到winnt目录中,改名为php.ini&&860&&861&查找&[MySQL]&字段内的内容.修改如下.&&862&&863&mysql.default_port&=&<span style="font-weight: color: #06&&864&//&这里是MYSQL的端口.&&865&&866&mysql.default_host&=&localhost&&867&//&这里是本地主机.&&868&&869&mysql.default_user&=&root&&870&//&这里是用户&&871&&872&mysql.default_password&=&abcdefg&&873&//&这里是密码&&874&&875&修改到这里就可以让&Php&与&MYSQL&关联了.&&876&最后启动&PHP&对&MYSQL&模块支持.&&877&&878&查找&extension=php_mysql.dll&字串.删除掉前面的&;&号&&879&&880&extension=php_mysql.dll&&881&&882&请注意.如果不启动&PHP&对&MYSQL&模块支持.将无法使&PHPMYADMIN&正常工作.将提示:&&883&&884&cannot&load&MySQL&extension,&please&check&PHP&Configuration&&885&无法装入&MySQL&扩展,请检查&PHP&的配置。&&886&&887&可是我设置完这样,重启apache却出现找不到libmySQL.dll动态链接库的提示,几经折磨才发现,必须把php中的libmysql.dll复制到apache中的bin目录中才ok(网上教材可没有)。&&888&&889&&#9679;让apache也支持mysql&&890&把php目录下的libmySQL.dll复制到apache的bin目录下。&&891&&892&ok,调试phpinfo(),一切正常。可是我写了句&echo&"我爱你";,就出现了中文乱码。老问题,从网上搜得一段话,顺利解决了问题。&&893&&894&&#9679;原因很简单,由于Apache它默认的编码是西欧编码,你只要在&#8220;httpd.conf&#8221;中找到&#8220;AddDefaultCharset&ISO-<span style="font-weight: color: #59-<span style="font-weight: color: #&#8221;将它修改为&#8220;AddDefaultCharset&GB2312&&#8221;,保存然后重新启动Apache再试,可能有的朋友的已经解决了,但还是有很多的朋友的网站依然是乱码,包括我的,这是什么原因呢,网上也有介绍把它改为&#8220;AddDefaultCharset&off&&#8221;,可能在你的网站也不一定行得通,实质问题在于它是由网页制作软件引起的,如果你使用的是Macromedia公司的Dreamweaver系列软件制作的,由于它的编码为&#8220;gb;,所以就会出现乱码,因此你只要在你网页的代码中找到&#8220;&#8221;,把&#8220;gb;改为&#8220;GB;然后保存网页,再试试看,行了吧!是不是太简单了,但是我为了把这乱码问题解决,也足足花了二天的时间才找到真正的原因,如果你做好了,别忘记请我喝酒呀!&895&&896&&897&&898&&899&分类:&(&一般分类&)&::&评论&(<span style="font-weight: color: #)&::&静态链接网址&::&引用&(<span style="font-weight: color: #)&&900&MSSQL经典语句&&901&发表人:kendy517&|&发表时间:&2007年二月09日,&<span style="font-weight: color: #:<span style="font-weight: color: #&902&&903&<span style="font-weight: color: #.按姓氏笔画排序:Select&*&From&TableName&Order&By&CustomerName&Collate&Chinese_PRC_Stroke_ci_as&&904&&905&<span style="font-weight: color: #.数据库加密:select&encrypt('原始密码')&906&select&pwdencrypt('原始密码')&907&select&pwdcompare('原始密码','加密后密码')&=&<span style="font-weight: color: #--相同;否则不相同&encrypt('原始密码')&908&select&pwdencrypt('原始密码')&909&select&pwdcompare('原始密码','加密后密码')&=&<span style="font-weight: color: #--相同;否则不相同&910&&911&<span style="font-weight: color: #.取回表中字段:declare&@list&varchar(<span style="font-weight: color: #00),@sql&nvarchar(<span style="font-weight: color: #00)&&912&select&@list=@list+','+b.name&from&sysobjects&a,syscolumns&b&where&a.id=b.id&and&a.name='表A'&913&set&@sql='select&'+right(@list,len(@list)-<span style="font-weight: color: #)+'&from&表A'&&914&exec&(@sql)&915&&916&<span style="font-weight: color: #.查看硬盘分区:EXEC&master..xp_fixeddrives&917&&918&<span style="font-weight: color: #.比较A,B表是否相等:if&(select&checksum_agg(binary_checksum(*))&from&A)&919&=&920&(select&checksum_agg(binary_checksum(*))&from&B)&921&print&'相等'&922&else&923&print&'不相等'&924&&925&<span style="font-weight: color: #.杀掉所有的事件探察器进程:DECLARE&hcforeach&CURSOR&GLOBAL&FOR&SELECT&'kill&'+RTRIM(spid)&FROM&master.dbo.sysprocesses&926&WHERE&program_name&IN('SQL&profiler',N'SQL&事件探查器')&927&EXEC&sp_msforeach_worker&'?'&928&&929&<span style="font-weight: color: #.记录搜索:开头到N条记录&930&Select&Top&N&*&From&表&931&-------------------------------&932&N到M条记录(要有主索引ID)Select&Top&M-N&*&From&表&Where&ID&in&(Select&Top&M&ID&From&表)&Order&by&ID&Desc&933&----------------------------------&934&N到结尾记录&935&Select&Top&N&*&From&表&Order&by&ID&Desc&936&&937&<span style="font-weight: color: #.如何修改数据库的名称:sp_renamedb&'old_name',&'new_name'&&938&&939&<span style="font-weight: color: #:获取当前数据库中的所有用户表select&Name&from&sysobjects&where&xtype='u'&and&status&=<span style="font-weight: color: #&940&&941&<span style="font-weight: color: #:获取某一个表的所有字段select&name&from&syscolumns&where&id=object_id('表名')&942&&943&<span style="font-weight: color: #:查看与某一个表相关的视图、存储过程、函数select&a.*&from&sysobjects&a,&syscomments&b&where&a.id&=&b.id&and&b.text&like&'%表名%'&944&&945&<span style="font-weight: color: #:查看当前数据库中所有存储过程select&name&as&存储过程名称&from&sysobjects&where&xtype='P'&946&&947&<span style="font-weight: color: #:查询用户创建的所有数据库select&*&from&master..sysdatabases&D&where&sid&not&in(select&sid&from&master..syslogins&where&name='sa')&948&或者&949&select&dbid,&name&AS&DB_NAME&from&master..sysdatabases&where&sid&&&&<span style="font-weight: color: #x01&950&&951&<span style="font-weight: color: #:查询某一个表的字段和数据类型select&column_name,data_type&from&information_schema.columns&952&where&table_name&=&'表名'&&953&&954&[n].[标题]:Select&*&From&TableName&Order&By&CustomerName&&955&&956&[n].[标题]:Select&*&From&TableName&Order&By&CustomerName&&957&&958&from:http://tb.blog.csdn.net/TrackBack.aspx?PostId=<span style="font-weight: color: #5515&959&&960&&961&分类:&(&一般分类&)&::&评论&(<span style="font-weight: color: #)&::&静态链接网址&::&引用&(<span style="font-weight: color: #)&&962&触发器-MSSQL常用操作&963&发表人:kendy517&|&发表时间:&2007年二月09日,&<span style="font-weight: color: #:<span style="font-weight: color: #&964&&965&不再新开文章.&966&&967&这里只打算讲解四部分了,也就最简单、最常用的四部分。&968&&969&<span style="font-weight: color: #、触发器。&970&&971&定义:&何为触发器?在SQL&Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。&972&常见的触发器有三种:分别应用于Insert&,&Update&,&Delete&事件。(SQL&Server&2000定义了新的触发器,这里不提)&973&&974&我为什么要使用触发器?比如,这么两个表:&975&&976&Create&Table&Student(&--学生表&977&StudentID&int&primary&key,&--学号&978&.&979&)&980&&981&Create&Table&BorrowRecord(&--学生借书记录表&982&BorrowRecord&int&identity(<span style="font-weight: color: #,<span style="font-weight: color: #),&--流水号&&983&StudentID&int&,&--学号&984&BorrowDate&datetime,&--借出时间&985&ReturnDAte&Datetime,&--归还时间&986&&987&)&988&&989&用到的功能有:&990&<span style="font-weight: color: #.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);&991&<span style="font-weight: color: #.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。&992&等等。&993&&994&这时候可以用到触发器。对于1,创建一个Update触发器:&995&&996&Create&Trigger&truStudent&997&On&Student&998&for&Update&999&As<span style="color: #00&if&Update(StudentID)<span style="color: #01&begin<span style="color: #02&<span style="color: #03&Update&BorrowRecord&<span style="color: #04&Set&StudentID=i.StudentID<span style="color: #05&From&BorrowRecord&br&,&Deleted&d&,Inserted&i&<span style="color: #06&Where&br.StudentID=d.StudentID<span style="color: #07&<span style="color: #08&end&<span style="color: #09&<span style="color: #10&理解触发器里面的两个临时的表:Deleted&,&Inserted&。注意Deleted&与Inserted分别表示触发事件的表&#8220;旧的一条记录&#8221;和&#8220;新的一条记录&#8221;。<span style="color: #11&一个Update&的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。<span style="color: #12&<span style="color: #13&对于2,创建一个Delete触发器<span style="color: #14&Create&trigger&trdStudent<span style="color: #15&On&Student<span style="color: #16&for&Delete<span style="color: #17&As<span style="color: #18&Delete&BorrowRecord&<span style="color: #19&From&BorrowRecord&br&,&Delted&d<span style="color: #20&Where&br.StudentID=d.StudentID<span style="color: #21&<span style="color: #22&从这两个例子我们可以看到了触发器的关键:A.2个临时的表;B.触发机制。<span style="color: #23&这里我们只讲解最简单的触发器。复杂的容后说明。<span style="color: #24&事实上,我不鼓励使用触发器。触发器的初始设计思想,已经被&#8220;级联&#8221;所替代.<span style="color: #25&<span style="color: #26&来自:http://www.innerv.com/blogview.asp?logID=<span style="font-weight: color: #2<span style="color: #27&<span style="color: #28&<span style="color: #29&<span style="color: #30&分类:&(&一般分类&)&::&评论&(<span style="font-weight: color: #)&::&静态链接网址&::&引用&(<span style="font-weight: color: #)&<span style="color: #31&MSSQL数据库导出和导入<span style="color: #32&发表人:kendy517&|&发表时间:&2007年二月09日,&<span style="font-weight: color: #:<span style="font-weight: color: #<span style="color: #33&<span style="color: #34&SQL&Server导出导入数据方法<span style="color: #35&<span style="color: #36&<span style="font-weight: color: #04-<span style="font-weight: color: #&余枫&一、导出导入SQL&Server里某个数据库&<span style="font-weight: color: #.在SQL&Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务-&备份数据库。&<span style="font-weight: color: #.备份&选数据库-完全,&目的&备份到&按添加按钮&文件名&在SQL&Server服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak)&重写&选重写现有媒体&最后按确定按钮。&如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输。&<span style="font-weight: color: #.通过FTP或者remote&desktop或者pcanywhere等方法&把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQL&Server数据库,如果有压缩要解压。&<span style="font-weight: color: #.目的SQL&Server数据库如果还没有此数据库,先创建一个新的数据库;&然后选中这个新创建的数据库,按鼠标右键,选所有任务-&还原数据库&还原-&从设备-&选择设备-&磁盘-&添加(找到要导入的备份数据库文件名)-&确定&还原备份集-&数据库-完全&最后按确定按钮。完全的数据库导入成功了。&(如果在已经存在的SQL&Server数据库上还原数据库可能遇到有还有其它人正在使用它而恢复操做失败,&可以去看&-&管理-&当前活动-&锁/对象-&找到数据库下锁的进程号-&到查询分析器里用kill&进程号杀掉这些锁,&然后再做还原)&注意:如果在原有的目的SQL&Server数据库上从备份文件(*.bak)还原数据库&会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。&如果一定要还原备份文件(*.bak)里部分数据,需要另外建一个新数据库,&其逻辑名称和数量同备份文件(*.bak)里数据库的逻辑名称和数量一致;&新数据库的物理文件名称取得一定要和备份文件(*.bak)里数据库的物理文件不一样才行。&二、导出导入SQL&Server里某个表&<span style="font-weight: color: #.没有防火墙,同一个局域网里或不在同一个局域网里,但通过Internet可以互相访问&在SQL&Server企业管理器里选中目的数据库&,按鼠标右键,选所有任务-&导入数据-&&弹出数据转换服务导入/导出向导窗口-&下一步-&&选数据源-&&数据源(用于SQL&Server的Microfost&OLE&DB提供程序)-&&服务器(可选择局域网内能访问到的所有SQL&Server服务器,或者直接输入IP地址)-&&选择使用windows身份验证还是使用SQL&Serve身份验证(输入数据库的用户名和密码)-&&数据库(可选择上面选中SQL&Server服务器上所有权限范围内的数据库)-&下一步-&&选择目的-&目的(用于SQL&Server的Microfost&OLE&DB提供程序)-&&服务器(默认为上一步里选中的导出服务器,也可以选其它局域网内能访问到的所有SQL&Server服务器,或者直接输入IP地址)-&&目的数据库(可选择上面选中SQL&Server服务器上所有权限范围内的数据库)-&下一步-&&制定表复制或查询-&选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)-&下一步-&&选择源表和视图-&在要导入的表和视图前面选中源-&目的出现同样的表名(可以手工修改成别的表名)-&&转换-&列映射和转换里面可以修改源表和目的表之间字段的对应关系,修改目的表字段的类型和长度等,&并可以选择创建目的表,在目的表中增加行,除去并重新创建目的表,启用标志插入等选项-&确定-&下一步-&&保存、调度和复制包-&时间-&立即运行(如果要实现隔一段时间自动导出导入数据,选调度DTS包以便以后执行)-&&保存(可以不选)-&[&保存DTS包(如果以后还要转移这批相同的数据,可以把本次导出导入的内容和步骤保存起来,&存到SQL&Server即可,保存的时候要输入DTS的包名及详细描述)-&下一步-&&]-&完成&正在执行包-&图形界面显示创建表及插入记录的步骤和状态-&完成&<span style="font-weight: color: #.经过防火墙,不在同一个局域网里&&#9312;、导出表里的数据到文本文件:&在SQL&Server企业管理器里选中目的数据库,按鼠标右键,选所有任务-&&导入数据-&弹出数据转换服务导入/导出向导窗口-&下一步-&&选数据源-&&数据源(用于SQL&Server的Microfost&OLE&DB提供程序)-&&服务器(可选择局域网内能访问到的所有SQL&Server服务器)-&&选择使用windows身份验证还是使用SQL&Serve身份验证(输入数据库的用户名和密码)-&&数据库(可选择上面选中SQL&Server服务器上所有权限范围内的数据库)-&下一步-&&选择目的-&目的(文本文件)-&&文件名(在自己的电脑硬盘中生成一个自定义的文本文件)&-&下一步-&&制定表复制或查询-&选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)-&下一步-&&选择目的文件格式-&源(选择要导出的表)-&用默认的带分隔符-&选第一行包含有列名称选项-&下一步-&&保存、调度和复制包-&时间-&立即运行(如果要实现隔一段时间自动导出到文本文件,选调度DTS包以便以后执行)-&&保存(可以不选)-&&[保存DTS包(保存的时候要输入DTS的包名及详细描述)-&下一步-&]-&完成&正在执行包-&图形界面显示表到文本文件的步骤和状态-&完成&如果生成的文本文件大于1M,要用压缩工具压缩后再到Internet上传输。&&#9313;、通过FTP或者remote&desktop或者pcanywhere等方法把&第&#9312;步生成的文本文件或者其压缩后的文件传到目的SQL&Server数据库,如果有压缩要解压。&&#9314;、把文本文件导入目的SQL&Server数据库&直接把文本文件导入目的SQL&Server数据库里跟文本文件同名的新表名时,默认的会把所有字段类型都变成字符串。&所以我们要这样做:&在源SQL&Server数据库上先生成创建表的sql语句&在SQL&Server查询分析器里-&选中源数据库里表名-&按右键-&在新窗口中编写对象脚本-&创建-&&复制下新窗口内创建表名的sql语句&到目标SQL&Server数据库上查询分析器里执行创建表名的sql语句,生成空表结构。&(如果已经存在这样的表名,修改建表的sql语句,在表名后面加上导入时间的年月信息,例如table_0113)&调用导入/导出工具-&弹出数据转换服务导入/导出向导窗口-&下一步-&&选数据源-&&数据源(文本文件)-&&文件名(已传到目的SQL&Server数据库下要导入的文本文件,后缀可以不是*.txt,&但是常规文本编辑器能打开的文件,文件类型选全部)-&下一步-&&选择文件格式-&用默认的带分隔符-&选第一行包含有列名称选项-&下一步-&&制定列分割符-&逗号-&下一步-&&选择目的-&目的(用于SQL&Server的Microfost&OLE&DB提供程序)-&&服务器(可选择目标局域网内能访问到的所有SQL&Server服务器)-&&选择使用windows身份验证还是使用SQL&Serve身份验证(输入数据库的用户名和密码)-&&数据库(可选择上面选中SQL&Server服务器上所有权限范围内的数据库)-&下一步-&&选择源表和视图-&修改目的表名为刚才创建的表名-&转换(在目的表中追加行)&-&下一步-&&保存、调度和复制包-&&时间-&立即运行(如果要实现隔一段时间自动把文本文件导入,选调度DTS包以便以后执行)-&&保存(可以不选)-&&[保存DTS包(保存的时候要输入DTS的包名及详细描述)-&下一步-&]-&完成&正在执行包-&图形界面显示文本文件到表的步骤和状态-&完成&如果要更改导入时间的年月信息的表名,例如table_0113到原来的表名,&在企业管理器里把原来的表名改成table_old_0113,table_0113改名成table。&这会对应用程序里频繁访问的表照成一定的中断。&注意:源表上的建的索引和主键约束不能用上面介绍的1和2方法转移过来,还需要手工来建索引和主键。&标志种子和not&null的约束可以继承过来。&导入视图时会把源视图里所有的真实数据导入成一个新表,而不是视图。&三、SQL&Server存储过程或用户定义的函数导出导入&<span style="font-weight: color: #、导出存储过程或用户定义的函数成*.sql文件&在SQL&Server企业管理器里选中源数据库,&存储过程-&单选或者多选中要转移的存储过程-&&用户定义的函数-&单选或者多选中要转移的函数-&&按鼠标右键,选所有任务-&生成SQL脚本-&确定-&在自己的电脑硬盘中生成一个自定义的*.sql文件-&&保存-&正在生成SQL脚本-&成功&<span style="font-weight: color: #、如果目的数据库经过防火墙,不在同一个局域网里,&要通过FTP或者remote&desktop或者pcanywhere等方法把第1步生成的*.sql文件传到目的SQL&Server数据库服务器上。&<span style="font-weight: color: #、用查询分析器进入SQL&Server目的数据库,&从菜单里选文件-&打开-&打开查询文件-&选中第1步生成的*.sql文件-&点执行查询的绿色倒三角型快捷键-&&查询窗口里会出现执行后的消息(有时候可能因为存储过程和用户定义的函数之间有一定的依赖关系,会报一些错。&最好先执行用户定义的函数的*.sql文件,再执行存储过程的*.sql文件)&四、ORACLE数据库里表导入SQL&Server数据库&<span style="font-weight: color: #、在目的SQL&Server数据库服务器上安装ORACLE&Client软件或者ORACLE&ODBC&Driver.&在$ORACLE_HOMEnetworkadmintnsnames.ora里配置ORACLE数据库的别名(service&name)。&具体配置方法可以参考本站文章:客户端连服务器的注意事项&<span style="font-weight: color: #、在WIN2000或者win2003服务器-&管理工具-&数据源(ODBC)-&&系统DSN(本机器上NT域用户都可以用)-&添加-&ORACLE&ODBC&Driver-&完成-&&data&source&name&可以自定义,我一般填ORACLE数据库的sid标志,&description里可以填ORACLE数据库详细描述,也可以不填-&&data&source&service&name&填第1步定义的ORACLE数据库别名-&OK。&(用户DSN和文件DSN也可以类似配置,但使用的时候有一些限制)&<span style="font-weight: color: #、SQL&Server的导入和导出数据工具里-&选数据源-&&数据源(其它(ODBC数据源))-&&选第2步在ODBC里定义的系统DSN&source&name,用户名密码处填写ORACLE系统的用户名和密码-&&下一步-&选择目的,选SQL&Server数据库(跟上面第二点讲的一致,就不重复了)。&注意:在ORACLE表和SQL&Server表之间'转换'那步很重要,&可以改变默认的字段数据类型,如image-&text,decimal-&int&五、SQL&Server数据库里表导入ORACLE数据库&方法一.导出目的选通过ODBC数据源里定义的ORACLE数据库,&注意ORACLE里表名都是大写的.&我一般在ORACLE这边先生成好表结构,再选择SQL&SERVER源表往ORACLE目的表里追加数据.&数据传输速度比方法二慢.&方法二.从SQL&Server数据库导入数据到ORACLE数据库可以选择用Windows下ORACLE9i企业或者个人版数据库做中转。&具体配置方法可以参考这两篇文章:&Oracle&异构服务实践&在ORACLE里设置访问多个SQL&Server数据库&注意:ORACLE通过访问SQL&Server的数据库链接时,用select&*&的时候字段名是用双引号引起来的。&查看全文&<span style="color: #37&<span style="color: #38&分类:&(&一般分类&)&::&评论&(<span style="font-weight: color: #)&::&静态链接网址&::&引用&(<span style="font-weight: color: #)&<span style="color: #39&MySQL数据库导出和导入<span style="color: #40&发表人:kendy517&|&发表时间:&2007年二月09日,&<span style="font-weight: color: #:<span style="font-weight: color: #<span style="color: #41&<span style="font-weight: color: #).MySQLimport的语法介绍:&<span style="color: #42&<span style="color: #43&  MySQLimport位于MySQL/bin目录中,是MySQL的一个载入(或者说导入)数据的一个非常有效的工具。这是一个命令行工具。有两个参数以及大量的选项可供选择。这个工具把一个文本文件(text&file)导入到你指定的数据库和表中。比方说我们要从文件Customers.txt中把数据导入到数据库Meet_A_Geek中的表Custermers中:&<span style="color: #44&<span style="color: #45&  MySQLimport&Meet_A_Geek&Customers.txt&<span style="color: #46&<span style="color: #47&  注意:这里Customers.txt是我们要导入数据的文本文件,而Meet_A_Geek是我们要操作的数据库,数据库中的表名是Customers,这里文本文件的数据格式必须与Customers表中的记录格式一致,否则MySQLimport命令将会出错。<span style="color: #48&<span style="color: #49&  其中表的名字是导入文件的第一个句号(.)前面文件字符串,另外一个例子:MySQLimport&Meet_A_Geek&Cus.to.mers.txt<span style="color: #50&<span style="color: #51&  那么我们将把文件中的内容导入到数据库Meet_A_Geek&中的Cus表中。&<span style="color: #52&<span style="color: #53&  上面的例子中,都只用到两个参数,并没有用到更多的选项,下面介绍MySQLimport的选项&<span style="color: #54&<span style="color: #55&  <span style="font-weight: color: #).MySQLimport的常用选项介绍:&<span style="color: #56&<span style="color: #57&  选项&功能&<span style="color: #58&<span style="color: #59&  -d&or&--delete&新数据导入数据表中之前删除数据数据表中的所有信息&<span style="color: #60&  -f&or&--force&不管是否遇到错误,MySQLimport将强制继续插入数据&<span style="color: #61&  -i&or&--ignore&MySQLimport跳过或者忽略那些有相同唯一关键字的行,&导入文件中的数据将被忽略。&<span style="color: #62&  -l&or&-lock-tables&数据被插入之前锁住表,这样就防止了,你在更新数据库时,用户的查询和更新受到影响。&<span style="color: #63&  -r&or&-replace&这个选项与-i选项的作用相反;此选项将替代表中有相同唯一关键字的记录。&<span style="color: #64&  --fields-enclosed-&by=&char&指定文本文件中数据的记录时以什么括起的,&很多情况下数据以双引号括起。&默认的情况下数据是没有被字符括起的。&<span style="color: #65&<span style="color: #66&  --fields-terminated-&by=char&指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。<span style="color: #67&<span style="color: #68&  默认的分隔符是跳格符(Tab)&<span style="color: #69&<span style="color: #70&  --lines-terminated-&by=str&此选项指定文本文件中行与行之间数据的分隔字符串或者字符。&默认的情况下MySQLimport以newline为行分隔符。&<span style="color: #71&<span style="color: #72&  您可以选择用一个字符串来替代一个单个的字符:&<span style="color: #73&<span style="color: #74&  一个新行或者一个回车。&<span style="color: #75&<span style="color: #76&  MySQLimport命令常用的选项还有-v&显示版本(version),-p&提示输入密码(password)等。&<span style="color: #77&<span style="color: #78&  <span style="font-weight: color: #).例子:导入一个以逗号为分隔符的文件&<span style="color: #79&<span style="color: #80&  文件中行的记录格式是这样的:&<span style="color: #81&<span style="color: #82&  "<span style="font-weight: color: #",&"ORD89876",&"<span style="font-weight: color: #&Dozen&Roses",&"<span style="font-weight: color: #991226"&<span style="color: #83&<span style="color: #84&  我们的任务是要把这个文件里面的数据导入到数据库Meet_A_Geek中的表格Orders中,我们使用这个命令:&<span style="color: #85&<span style="color: #86&  bin/MySQLimport&&#8211;prl&&#8211;fields-enclosed-by="&&#8211;fields-terminated-by=,&Meet_A_Geek&Orders.txt&<span style="color: #87&<span style="color: #88&  这个命令可能看起来很不爽,不过当你熟悉了之后,这是非常简单的。第一部分,bin/MySQLimport&,告诉操作系统你要运行的命令是MySQL/bin目录下的MySQLimport,选项p是要求输入密码,这样就要求你在改动数据库之前输入密码,操作起来会更安全。&我们用了r选项是因为我们想要把表中的唯一关键字与文件记录中有重复唯一关键字的记录替换成文件中的数据。我们表单中的数据不是最新的,需要用文件中的数据去更新,因而就用r这个选项,替代数据库中已经有的记录。l选项的作用是在我们插入数据的时候锁住表,这样就阻止了用户在我们更新表的时候对表进行查询或者更改的操作。<span style="color: #89&  批处理是一种非交互式运行MySQL程序的方法,如同您在MySQL中使用的命令一样,你仍然将使用这些命令。&<span style="color: #90&<span style="color: #91&  为了实现批处理,您重定向一个文件到MySQL程序中,首先我们需要一个文本文件,这个文本文件包含有与我们在MySQL中输入的命令相同的文本。&<span style="color: #92&<span style="color: #93&  比如我们要插入一些数据,使用包含下面文本的文件(文件名为New_Data.sql,当然我们也可以取名为New_Data.txt及任何其他的合法名字,并不一定要以后缀sql结尾):&<span style="color: #94&<span style="color: #95&  USE&Meet_A_G&<span

我要回帖

更多关于 aspx.cs 的文章

 

随机推荐