Monday, July 14, 2008

E-Mail илгээх PHP код (UTF-8 encoding-тай)

Хэрвээ UTF-8 encoding-тайгаар э-шуудан илгээх хэрэгтэй болсон бол доорх функц танд тус болно гэж бодож байна.

function utf8Email($toEmail, $toName, $fromEmail, $fromName, $subject, $message)
{
$headers = "MIME-Version: 1.0 \n" ;
$headers .= "From: " .mb_encode_mimeheader (mb_convert_encoding($fromName,"utf-8","AUTO")) ."<".$fromEmail."> \n";
$headers .= "Reply-To: " .mb_encode_mimeheader (mb_convert_encoding($fromName,"utf-8","AUTO")) ."<".$fromEmail."> \n";
$headers .= "Content-Type: text/html;charset=utf-8 \n";

$body = mb_convert_encoding($message, "utf-8","AUTO");

$sendmail_params = "-f$from_email";

mb_language("uni");
$subject = mb_convert_encoding($subject, "utf-8","AUTO");
$subject = mb_encode_mimeheader($subject);
$result = mail($toEmail, $subject, $body, $headers, $sendmail_params);

return $result;
}

Wednesday, June 18, 2008

Файлд бичих. (UTF-8 encoding-тай)

Хэрвээ файлд УНИКОД текст бичих үед бичсэн текст тань ???? болоод байвал доорх кодыг ашиглаарай.

String output = "UTF-8 текст." ;
try
{
FileOutputStream outstream = new FileOutputStream("output");
BufferedWriter writer = new BufferedWriter (new OutputStreamWriter(outstream , "UTF-8")) ;

writer.write (output) ;

writer.flush () ;
writer.close () ;
}
catch (IOException e)
{
success = false ;
e.printStackTrace();
}

Thursday, March 20, 2008

varchar, varchar2-ийн ялгаа юу вэ?

To see it in English:
http://neu2st.blogspot.com/2008/03/whats-difference-between-varchar.html

Varchar, varchar2 бол Оракл өгөгдлийн сан дээр байдаг 2 өгөгдлийн төрөл бөгөөд дараах зүйлээрээ ялгагддаг юм байна.
1-рт: Хадгалах хэмжээ, varchar - 2000 байт мэдээлэл хадгалж чаддаг бол varchar2 - 4000 байт мэдээлэл хадгалах боломжтой юм байна.
2-рт: Encoding буюу хэлний загвар сонголт, varchar бол ascii дэмждэг бол varchar2 юникодыг дэмждэг юм байна.
Нэмж хэлэхэд монгол тэмдэгт бичихэд 2 байт эзэлдэг байхад англи тэмдэгт үед 1 байт эзэлдэг юм байлаа.

Wednesday, February 27, 2008

Их өгөгдөлтэй өгөгдлийн сангийн хүснэгтийг Grid харуулах нь

to see in english follow: http://neu2st.blogspot.com/2008/02/how-to-show-large-table-in-data-grid.html

.НЭТ дээр өгөгдлийн сантай application program бичиж байгаа мань мэтийн хүмүүст дараах асуудал тулгардаг. Энэ бол хэт их өгөгдөлтэй өгөгдлийн сангийн хүснэгтийг Fill хийх үед програм удаан хугацаагаар Not responding болдог. Мөрийн тоо нь 375000 орчим байсан болохоор шууд Fill хийвэл 3 мин орчим хугацаа зарцуулаад байсан. Аз таарч миний ашигладаг Dev eXpress Components-ийн GridControl component нь энэ асуудлыг шийдсэн байсан л даа. GridControl component-д ServerMode гэсэн property байдаг. ServerMode=false бол grid нь энгийн Fill функцээр DataTable-ээ дүүргэнэ гэсэн үг. Харин ServerMode=true байвал эхлээд цонхонд харагдах өгөгдлийг өгөгдлийн сангаас авчрана. Үүнээс хойш скроллдох (filter, sort) үед дэлгэцэнд харагдах мэдээллээ л сангаас аваад байна. Дараах дарааллын дагуу хийгээд үзэхэд үнэн кайф авна доо.

1. Формоо үүсгэ (ex: Form1)
2. DataSet ээ визардынх дагуу үүсгэчих (ex: DataSet1; CustomersDataTable)
3. GridControl-оо Form1 дээрээ нэмнэ (ex: GridControl1)
4. GridControl1.ServerMode property-г True болго
5. XpServerCollectionSource гэсэн контрол байгаа. Тэрнийг аваад форм дээрээ тавь (ex: xpServerCollectionSource1)
6. xpServerCollectionSource1.ObjectClassInfo гэдэг property-г DataSet1.CustomerDataTable гэсэн утга сонгож өг. WindowsApplication1.DataSet1+CustomerDataTable гэсэн утга автоматаар ороод ирнэ.

7. GridControl1.DataSource= xpServerCollectionSource1
8. Form1_Load дээр энэ кодыг нэмж өг. XpoDefault.ConnectionString= DevExpress.Xpo.DB.OracleConnectionProvider.GetConnectionString("local", "scott", "tiger");


Энэ тохиолдолд Oracle 10g ашигласан байгаа. Ер нь бол MSSQL, mySQL, Interbase өөр юу юу ч байдаг билээ, бүгдийн л ашиглаж болох юм байна лээ.

http://www.devexpress.com сайтаас энэ компонентийг татаж аваад крак олоод ашиглачихад давгүй л юм байна лээ. Интерактив-ийн Interactive Diamond-г хийхэд ашигласан компонентүүд шүү :)