易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : sql

SQL注入

随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS*志的习惯,可能被入侵很长时间都不会发觉。
但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据,是高手与“菜鸟”的根本区别。
根据国情,国内的网站用ASP+Access或SQLServer的占70%以上,PHP+MySQ占L20%,其他的不足10%。在本文,我们从分入门、进阶至高级讲解一下ASP注入的方法及技巧,PHP注入的文章由NB联盟的另一位朋友zwell撰写,希望对安全工作者和程序员都有用处。了解ASP注入的朋友也请不要跳过入门篇,因为部分人对注入的基本判 ......

fastreport打印代码及SQL合并字段的语句

 procedure Tform1.Button5Click(Sender: TObject);
var
  p:pointer;
  FrfStr:string;
begin
  inherited;
  Screen.Cursor:=MYCURSORWAITHAND;
  with cdsPrint do
  begin
    Active:=false;
    //这个SQL用于将remark中的记录合并到一起!
    CommandText:='select a.ITEM_ID, a.ITEM_NAME,count(a.Coll_ID) as num,ltrim(max(sys_connect_by_path(a.remark, '';'')), '';'') remark '
      +' from (select /*+index(b,TAB_ORDER_I)*/ b.ITEM_ID,b.Coll_ID,b.ITEM_NAME,b.remark,row_number() over(partition by b.ITEM_ID order by b.ITEM_ID)'
      +' ITEM_ID1,row_number() over(order by b.ITEM_ID) + dense_rank() over(order by b.ITEM_ID) ITEM_ID2 '
      +' from TAB_ORDER b  where  b.Coll_ID ='''+DBComboBoxEh1.Text+''''
      +'  ) a'
      +' start with ITEM_ID1 = 1 connect by prior ITE ......

SQL UNION 和 UNION ALL 操作符

 SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) from table_name1
UNION
SELECT column_name(s) from table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SQL UNION ALL 语法
SELECT column_name(s) from table_name1
UNION ALL
SELECT column_name(s) from table_name2
另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。 ......

月份处理及SQL时间条件instr函数

    YearCode:=yearof(Date);
      MonthCode:=monthof(Date);
      if  MonthCode>9 then
        FTime1:=inttostr(YearCode)+inttostr(MonthCode)
      else
        FTime1:=inttostr(YearCode)+'0'+inttostr(MonthCode);
      FTime:= DateTimeToStr(Date); //
      //FTime1:=formatdatetime('yyyymm',Date);
      //FTime1:=leftstr(FTime,6);
      TimeTemp:=formatdatetime('yyyy-mm',Date);
        cds.Active:=false;
        cds.CommandText:='select /*+index(a,TAB1_I)*/ max(a.id) as id  from TAB1 a where '
          +'INSTR(a.id,'''+FTime1+''', 1,1 )>0 and  length(a.id)=11 and a.UPDATE_TIME between ......

常用 sql语句

SQL插入语句得到自动生成的递增 ID 值
 insert  into  Table1(Name,des,num)  values  ('ltp','thisisbest',10);
select  @@identity  as  'Id'
随机提取条记录的例子
SQL  Server:Select  Top  10  *  from  Tablename  Order  By  NewID() 
 
Access:Select  Top  10  *  from  Tablename  Order  By  Rnd(ID)  
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段UserName) 
Select  Top  10  *  from 表Order  BY  Rnd(Len(UserName))
得出某日期所在月份的最大天数
ELECT  DAY(DATEADD(dd,  -DAY('2008-02-13'),DATEADD(mm,  1,  '2008-02-13'))) 
  AS  'DayNumber'
按姓氏笔画排序
Select  *  from  TableName  Order  By  CustomerName  Collate  Chinese_PRC_Stroke_ci_as
通配符的一些用法
1   select  *  from ......

SQL 和存储过程级别的事务及ADO.NET级别的事务

 数据库事务是其他事务模型的基础,当一个事务创建时不同数据库系统都有自己的规
则。SQL Server 默认在自动提交的模式下工作,每个语句执行完后都会立即提交;与此对照
的是 Oracle 需要你包含一个提交语句。但是当一个语句通过 OLE  DB 执行时,它执行完后
一个提交动作会被附加上去。例如:
DECLARE  @TranName  VARCHAR(20);
SELECT  @TranName  =  'MyTransaction';
 
BEGIN  TRANSACTION  @TranName;
GO
USE  AdventureWorks;
GO
DELETE  from  AdventureWorks.HumanResources.JobCandidate
        WHERE  JobCandidateID  =  13;
GO
 
COMMIT  TRANSACTION  MyTransaction;
GO
或者:
CREATE  PROCEDURE  Tran1  
as  
begin  tran   
set  xact_abort  on 
Insert  Into  P_Category(CategoryId,Name)values('1','test1')  
Insert  Into  P_Category(CategoryId,Name)values('2', ......
总记录数:4346; 总页数:725; 每页6 条; 首页 上一页 [557] [558] [559] [560] 561 [562] [563] [564] [565] [566]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号