Application Development

Software technique, Skills & Applications

数据表损坏 January 25, 2012

Filed under: mySql — meetme @ 3:39 am

出现表损坏的根本原因是:你的表使用了myisam存储引擎。
myisam存储引擎主要用于select,如果用于insert,update,delete由于内部缺陷和异常数据访问经常造成索引文件损坏,注意是“经常”。

因此解决办法有二:
1.用myisamchk工具修复。一旦文件损坏只能暂停web访问,用myisamchk工具修复后可恢复正常。(暂时性,不能解决根本问题)
2.把表转换为innodb存储引擎。对用户来说是透明的,对程序逻辑不受任何影响,永久解决索引文件损坏的问题。
  可通过以下语句把存储引擎转换为innodb。:alter table tablename engine=innodb;

 

Got error 134 from storage engine January 23, 2012

Filed under: mySql — meetme @ 9:37 pm

storage engine错误,一般就是表出错

repair table tablename;

 

表格居中的解决方法 January 20, 2012

Filed under: css — meetme @ 3:22 am

From http://www.cnblogs.com/djune/archive/2009/08/05/1539861.html

  把原来用到align:center或text-align:center的地方用在对应的style里面用margin: 0px auto替换。这样既可以在火狐中居中也可以再IE中居中。
以下是具体代码:
这个是我第一次写的居中表格的源代码:【只能在IE7中居中】<div style=”text-align:center”>  
<table  border=”1″ cellspacing=”0″ style=”border-collapse: collapse; border-color:Black;”> 
      <tr>
            <td>第一列</td>
            <td>第二列</td>
      </tr>
</table>
<div>
   
这个是我更改后的部分源代码:【即能在IE7中居中又能在火狐中居中】<table  border=”1″ cellspacing=”0″ style=”border-collapse: collapse; border-color:Black; margin: 0px auto; “> 
      <tr>
            <td>第一列</td>
            <td>第二列</td>
      </tr>
</table>

版权所有djune@博客园2009 哥签的不是名,是寂寞…..
 

RAD PHP 控件dbgrid如何显示汉字? January 9, 2012

Filed under: RadPHP — meetme @ 11:48 pm

http://hi.baidu.com/usegear/blog/item/6c62ed4249ac330a9313c6b2.html

让千百万(夸张一下)人头疼的问题:是让this page的汉字不乱码,让dbgrid显示不乱码?

 1、把网上高手关于dbgrid总结转载一下,已经很清楚了:

 Tools—〉Editor Options—〉勾选Use UTF-8…………

  设置PHP—〉Default Charset—〉utf-8

  勾选Set these values on php.ini

  然后你就可以自由使用输入显示中文了。

  注意,不要在网站目录上使用中文命名,据说这样会使软件速度变得很慢。

  如果要配合mysql数据库的话:把mysql的编码改成utf-8就行了。

  完整的中文支持方法:

  1 要使用delphi for php的update1版,之前的版本虽然也能达到页面内容显示中文的目标,但这不是完全的中文支持。

  有了delphi for php编程软件后,新增一个form页面,只要将form的encoding属性设为GB2312或utf-8,即可实现页面正常显示中文。

  2 本论坛及网上其他地方对控件的中文支持有不同描述,本人经过整理,其实现步骤是:1、修改apache2的配置文件,让其应用utf-8字符集(注意同时修改http.conf和httpd.template.conf文件,以免被delphi for php启动时复原);2、设置delphi for php,让其应用utf-8字符集,同时也让php应用utf-8字符集;3、修改PHP配置文件,让其应用utf-8字符集(同时修改php.ini和 php.ini.template文件,原因同上),这部分的设置似乎在第2步已经完成了,当然用另一种方式设置一下也没关系啦。

  至此,在delphi for php中将form的encoding设为utf-8,即可完全实现控件的中文支持。

  到这一步后,数据库控件其实在代码层次已经支持中文了,但由于mysql数据库与php在字符集一致性等方面的原因,仍会显示乱码。

  3 MySQL 4以上的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

  因此需要将mysql和PHP的默认字符集都设为utf-8,如此设置以后,我们会发现一个问题:用delphi for php生成的php程序提交的中文数据,用phpmyadmin查看是乱码,但用原提交程序查看却一切正常;另一方面,用phpmyadmin输入的中文数据,用delphi for php生成的php程序查看是乱码,但用phpmyadmin查看却正常。

  由此我们可以推断出:数据在传输及存储环节出现了字符集的不一致。

  问题就出在这个connection连接层上!一般情况下,PHP连接Mysql编码方式,如果没有显式的声明编码方式,都将使用latin1编码。一般的程序,都没有显式声明,所以,都是将utf8文本按latin1编码方式存在数据库,PHPMyAdmin再用utf8格式读取,肯定是乱码。如果PHP程序按正确的编码存入数据库,肯定是没有问题的。

  因此需要显式声明如下变量:

  SET character_set_client=’utf8’

  SET character_set_connection=’utf8’

  SET character_set_results=’utf8’

  上述声明与 SET NAMES ’utf8’等价,如此以来,解决问题的关键就变成了如何将 SET NAMES ’utf8’ 放入delphi for php程序并使其有效。

  其实非常简单,在form中找到数据库控件,在其OnAfterConnect事件中加入一行:$this->控件名->execute(’set names utf8′);

补充案例:    $this->dboscommerce1->execute(“set names utf8″);

  一切OK!

支持dbgrid显示汉字应该解决,包括显示汉字网页等。如果还不能搞定,别问我,呵呵。

2、网页标题汉字乱码问题

这个也是要命的问题,网上问的很多,但没有人答复。洒家在此给个办法,行不通也不要问我,呵呵。

 

在php.ini.template中修改:

添加: default_charset = “utf8″ (有用吗?不知道)

添加:mbstring.internal_encoding = utf8 (有用吗?不知道,可能有用)

希望你能把真正的原因告诉我。

(试验的数据库mysql)

ok goodluck!

网页标题汉字乱码问题,在程序中直接修改即可   

function Page6Create($sender, $params)
    {
      $this->Caption= “你的title”;

    }

 

从datebase中拿来的数据含有中文字段,显示在dbgrid中呈???形式,无法正确显示。 尝试办法: http://blog.csdn.net/winterwen123/article/details/6153975 1.工具->选项->PHP->默认字符集 设为UTF-8; 2.工具->选项->Editor Options->textencoding 设为UTF-8;character set 设为gb2312 3.现在才可以创建工程和文件,form的Encoding不用改。 4.工程路径不能包含中文,否则会出现假死; 现在运行工程,出来的页面才是中文的; 结果是不行 怎么试验都是无法在dbgrid中显示中文。问题待定。。。 最后还是李哥搜索到的,来自论坛中的答案。 http://forums.delphi-php.net/database-integration/373-dbgrid-charset.html 解决办法的关键事件函数。 function Database1AfterConnect($sender, $params) { $this->Database1->Charset=”UTF-8″; mysql_set_charset( “utf8″); } Database1是数据库控件的命名,将数据库控件的事件OnAfterConnect触发函数指向该函数,即可解决问题。该函数强制将数据库和mysql的字符设置为utf-8。 为避免出现其他中文乱码问题,字符集也最好按上述所说的设一下。

 

html 包含另一个html December 31, 2011

Filed under: css — meetme @ 4:45 am

<iframe   id= “frm ”   frameborder=0   src= “***.htm ”   height=320   width=570
scroll=no   > </iframe>

使用iframe比较简单,它可以强制一个HTML页面镶嵌在另一个页面中,类似于是用 object控件将Flash电影、录像、或者MP3播放器嵌入一个页面中。使用iframe,用户端不需要开启Javascript功能。但不利的方面 是iframe有固定的高度和宽度,不能随着被嵌入页面的大小而改变。当被嵌入页面大于给定高宽度时,会显示滚动条(当然你也可以使用 scrolling = “no” 来强制滚动条不显示,但这样页面内容会显示不完整),影响页面美观。另外就是搜索引擎可能不收录iframe引用的页面,不利网站推广。

 

IE6下min-height无效Hack方法 December 29, 2011

Filed under: css — meetme @ 8:02 pm

#page{

background:#F00;

min-height:500px;
height:auto !important;
height:500px;

overflow:visible;

}

就是这句overflow:visible使IE们能够当作height:auto来处理。问题解决。

from:http://hi.baidu.com/win_blue/blog/item/869ff9307ebf2ba25fdf0ec0.html

 

create function的时候有1418的错语 November 16, 2011

Filed under: mySql — meetme @ 6:31 pm

如果在create function的时候有1418的错语的时候:那么只需要执行set global

log_bin_trust_routine_creators=1;

然后怎么create function都不会有问题(当然,你的function必段正确哦),这是mysql的一个bug,搞

不懂为什么,反正这样做就OK了.

另外,也可以直接在配置文件my.cnf中添加如下行[mysqld]log_bin_trust_routine_creators=1;

这个命令可以在sqleditor的环境中运行,并不需要重新启动服务哦。

OR

解决方法如下:

  1. mysql> SET GLOBALlog_bin_trust_function_creators = 1;

  2. 系统启动时–log-bin-trust-function-creators=1

  3. 在my.ini(linux下为my.conf)文件中[mysqld] 标记后加一行内容为 log-bin-trust-

function-creators

 

 

 

bcb 日期大小比较 October 4, 2011

Filed under: C++Builder — meetme @ 1:52 am

#include “DateUtils.hpp”

TDateTime dt1, dt2;

dt1 = StrToDateTime(stime1);
dt2 = StrToDateTime(stime2);

if ( CompareDateTime(dt1, dt2) > 0 )
{
  //dt1 大于 dt2
}
else if ( CompareDateTime(dt1, dt2) == 0 )
{
  // dt1 等于 dt2
}
else
{
  // dt1 小于

 

RAVE REPORT 求百分比 September 17, 2011

Filed under: Uncategorized — meetme @ 11:53 am

先用兩個 Calc_Total ,分別把 總數量 及存放量 Sum 起來…
後來再用 Calc_op 把兩者相除….  結果 存在 parameter variable  EX :  totalPcnt  內.  
後來 就用 DataText   , 選擇 parameter variable  – totalPcnt 
終於搞定…. 

 

你可以試試 欄位裡的 event

裡面有個 ongettext

有個內建變數value,可以改變 value的值.

可以把字串轉成 currcy 或是 int , 再來計算, 計算完再設回給 value 就行了
假設你算出來的數字是 20
value:=floatformat(’0′,20)+’%';
上面這個程式就是把他轉成  20% 字串

 

判断一个表的数据不在另一个表中方法 July 12, 2011

Filed under: MS Access,mySql,Postgresql,SQL — meetme @ 9:49 pm

select a.* from tbl1 a
left join tbl2 b
on a.key = b.key
where b.key is null

 

 

 
Follow

Get every new post delivered to your Inbox.