Delphi ADOTable 增删查改

//添加记录

ADOTable1.AppendRecord([val1,val2]);

//删除记录

 ADOTable1.Filter :='SaleID='''+text+'''';
 ADOTable1.Filtered := true;
 if ADOTable1.RecordCount = 0 then
      begin
          ADOTable1.Filtered := false;
      end;
 else
      begin
          ADOTable1.Filtered := true;
          ADOTable1.Delete;
          ADOTable1.Filtered := false;
      end;

//查找记录

ADOTable1.Filter := 'SaleID='''+text+'''' ;
ADOTable1.Filtered :=True;

//更新记录

ADOTable1.Edit;
ADOTable1.FieldByName('SaleID').Asstring := text;
ADOTable1.Post;

Delphi ADODataset 增删查改

//Select/Refresh

ADODataset1.Active := false;
ADODataset1.CommandText := 'select *  from Table_1';
ADODataset1.Active := true;

//Add

ADODataset1.Append;
ADODataset1.Fieldbyname('ID').Value := edit1.Text;

//Delete

ADODataset1.Delete;

//Update

ADODataset1.Edit;
ADODataset1.Fieldbyname('ID').Value := edit1.Text;
ADODataset1.Post;

Why GAE?Why Picky?

Why GAE?为什么用 GAE 做 Blog 平台,参见 Livid 的把博客架在 Google App Engine 上的好处,自己的观点:

  1. WP 越来越庞大。WP 的功能强大和定制性毋庸置疑,但是随着 WP 的功能强大,效率和安全性越来越是个问题;
  2. 主机服务器的问题,在国内要备案要审查,这也是为啥我放弃了之前在国内的博客停止更新;
  3. GAE 是免费,并且满足自己折腾。

在放弃 WP 转战“云博客”的时候,也考虑过 Blogger、WP.com、Posterous 这种 BSP,不过还是放弃了,原因:

  1. Blogger、Posterous 虽然也可以自己绑定域名,但你能够折腾的只有内容和样式布局上,在整体功能上还是受限,参考上面第三条;
  2. WP.com 可以让我无痛转移之前博客过去,但不能绑定域名;
  3. GAE 的强大免费以及对 Google 的中毒,:)

Why Picky?Blog system powered by GAE 有很多,其中徐明的 Micolog 和丛林大侠的 iHere 异常强大,最吸引我的就是都支持 WP 导入,但是这两个的强大带来的一个问题就像是 WP 的庞大,有很多自己不非常需要的功能。另外,Picky 有很多非常吸引我的地方;

  1. Clean,no unnecessary visual noises,focus on writing;
  2. Employ sexy technologies like HTML5,Twitter;
  3. Integrated Twitter client,synchronize to Twitter automatically.

至于 appspot 被墙,这年头谁上网还没几个翻墙的家伙什?!

这就是为什么我选择 GAE+Picky 作为自己的发布平台,Easy to share my thought and opinion。

Delphi ADOQuery查询、插入、删除、修改

//查询记录

with ADOQuery do begin
    Close;
    SQL.Clear;
    SQL.Add('Select * From Table');
    Open;
end;

//插入记录

with ADOQuery do begin
    Close;
    SQL.Clear;
    SQL.Add('Insert Into Table(val1,val2) values(:val1,:val2)');
    Parameters.ParamByName('val1').Value := Trim(Edit1.Text);
    Parameters.ParamByName('val2').Value := Trim(Edit2.Text);
    ExecSQL;
end;

//删除记录

with ADOQuery do begin
    Close;
    SQL.Clear;
    SQL.Add('Delete from TABLE where val1=:val1'); // =: 前后都不可有空格;
    Parameters.ParamByName('val1').Value := Trim(Edit1.Text);
    ExecSQL;
end;

//修改记录

with ADOQuery do begin
    Close;
    SQL.Clear;
    SQL.Add('Update TABLE Set Key=:val1');
    Parameters.ParamByName('val1').Value := Trim(Edit1.Text);
    ExecSQL;
end;

Open 有记录集返回,ExecSQL 没有记录集返回;Select 常用 Open,Delete/Insert/Update 常用 ExecSQL。

忙碌的愚人节

今天我开始培训工作,碰巧愚人节,够巧的。

一上午就在帮他们整理资料,下午网络布线,累死个人了,真比做项目都累。

挑战很大,要加把劲,加油加油!~

Picky 改动记录

先谢国家,再谢 picky,简洁而强大的 Blog powered by GAE。自己做了一点点改动,记录一下,下次升级时候备忘。

  1. main.py - 添加全局变量 template_values = {}. RobotsHandler 生成 robots.txt 的时候没有对 template_values 定义赋值,造成 robots.txt 生成不能。
  2. robot.txt 修改 sitemap.xml 为绝对地址,跟第一个有关.
  3. 删掉了 default 主题 sidebar.html、article.html 两个模板文件里的 Google Ads。
  4. header.html 追加 Google Webmaster Meta 验证。
  5. 换了 Favicon。

Google.cn is leaving

So earlier today we stopped censoring our search services—Google Search, Google News, and Google Images—on Google.cn. Users visiting Google.cn are now being redirected to Google.com.hk, where we are offering uncensored search in simplified Chinese, specifically designed for users in mainland China and delivered via our servers in Hong Kong.

I love Google.

电脑貌似挂了

昨晚上抱着笔记本看电视,突然自动关机,一摸,热得烫手。虽说用个懒人桌撑着本子,散热还是有问题。等机子凉下来再次准备开机时,坏了,不能开机,按电源键直接没反应。

初步判断是主板烧了,当然,这是最坏的结果了。等周末拿去电脑城看看再说吧。

这本子用了整三年,之前是我家最昂贵的家伙什,跟着我没少受苦,希望不至于就这么的挂了吧。

静下心去思考

静下心的去思考程序,调试是最能锻炼学习能力的方法。

细小的地方要注意留心,同时要有大局观,整个函数的运行逻辑,整个项目系统的运行,都很重要。跳出来就会发现其实是自己给自己上套。

Fannt2r New Version

Fannt2r 是一个同步我的 Twitter 到人人的一个 GAE 应用,参考网上教程自己瞎搞出来的。现在是 cron 5分钟一次 LoginRenren、GetTweet、SendStatus,基本满足。早上在路上的时候想到了一个新的实现方式,备忘一下:

  1. 先 GetTweet,然后判断 if synctag in status:
  2. 然后再 LoginRenren、SendStatus。

这样可以 cron 一分钟跑一次,时效性更高,也不会因为过于频繁的 fetch 登录人人造成帐号被冻结。