10/31/2011

CakePHP Sqlite3 ашиглах

CakePHP FW -н sqlite_open функц нь Sqlite2 хүртлэх хувилбарыг дэмждэг бөгөөд Sqlite3 ашиглах үед доорх алдаа үүсдэг.

file is encrypted or is not a database


Sqlite3 ашиглахын тулд дараах классыг ашиглаж болно.
Доорх линкээс татаад аваарай
Татах


Татаж авч задласны дараа файлуудаа доор бичсэний дагуу харгалзах дир-т хуулна.

dbo_sqlite3_spok.php - г cake/app/models/datasources/dbo/」
dbo_source.php - г 「cake/app/models/datasources/」


ӨС-тай холбох тохиргоог доорх байдлаар тохируулна.

var $default = array(
'driver' => 'sqlite3_spok',
'connect' => 'PDO',
'persistent' => false,
'host' => '',
'login' => '',
'password' => '',
'database' => 'sqlite:../your path/Your DB',
'prefix' => '',
'encoding' => 'UTF-8',
);


Гэвч scaffold,paginate г.м функцуудыг ашиглах үед дараах алдаа үүсдэг.

Call to undefined method DboSqlite3Spok::calculate()


Дээрх алдааг засахдаа dbo_sqlite3_spok.php-д дараах функцыг нэмээрэй.

function calculate(&$model, $func, $params = array()) {
$params = (array)$params;
switch (strtolower($func)) {
case 'count':
if (!isset($params[0])) { $params[0] = '*'; }
if (!isset($params[1])) { $params[1] = 'count'; }
return 'COUNT(' . $this->name($params[0]) . ') AS ' .$this->name($params[1]);
case 'max':
case 'min' :
if (!isset($params[1])) { $params[1] = $params[0]; }
return strtoupper($func) . '(' . $this->name($params[0]) . ') AS ' . $this->name($params[1]);
break;
}
}

Continue Reading...

10/24/2011

SELinux Enable => Unable to connect to PostgreSQL server: could not connect to server: Permission denied


Unable to connect to PostgreSQL server: could not connect to server: Permission denied

SELinux Enable үед дээрх алдаа заавал дараах командыг бичиж SELinux төлөвийг шалгана.

getsebool -a | grep httpd

Дээрх командыг биелүүлэхд доорх байдлаар үр дүн нь харгадана.

allow_httpd_anon_write --> off
allow_httpd_mod_auth_pam --> off
allow_httpd_sys_script_anon_write --> off
httpd_builtin_scripting --> on
httpd_can_network_connect --> off
httpd_can_network_connect_db --> off
httpd_can_network_relay --> off
httpd_disable_trans --> off
httpd_enable_cgi --> on
httpd_enable_ftp_server --> off
httpd_enable_homedirs --> on
httpd_rotatelogs_disable_trans --> off
httpd_ssi_exec --> off
httpd_suexec_disable_trans --> off
httpd_tty_comm --> off
httpd_unified --> on

httpd_can_network_connect_db гэсэн тохиргоо Off үед дээрх алдаа үүсэх магадлалтай учир доорх командыг ашиглан On болгон тохируулна.

setsebool -P httpd_can_network_connect_db 1

Ер нь SELinux Enable үед урьд нь ажиллаж байсан тохиргоо ажиллахгүй үед SELinux-н лог файлыг нь шалгах нь зүйтэй юм.

/var/log/audit/audit.log


Permission denied гэсэн алдаа заасан үед дээрх лог файлыг шалгахдаа доорх команды ашиглавал хялбар байдаг.

grep "avc: denied" /var/log/audit/audit.log

Бүгдэд нь амжилт хүсье. :)
Continue Reading...

10/21/2011

Android Device information-г ашиглах талаар


Дараах жижигхэн жишээ код хэрэг болж магад гэж бодоод оруулж байна.

ICCID、IMSI、IMEI мэдээлэлийг авах
AndroidManifest.xml-д дараах uses-permission нэмнэ



Java Code

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

//ICCID
String iccid = telephonyManager.getSimSerialNumber();

//IMSI
String subscriberid = telephonyManager.getSubscriberId();

//IMEI
String deviceid = telephonyManager.getDeviceId();


МАС address авахдаа
AndroidManifest.xml-д дараах uses-permission нэмнэ



Java Code

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String macAddress = wifiInfo.getMacAddress();



OS хувилбар, тухайн Device-н нэр авахдаа

//OS Version
String osVersion = Build.VERSION.RELEASE;

//Device Name
String productName = Build.PRODUCT;
Continue Reading...

10/20/2011

ocropus суулгах талаар

Дээрх програмыг CentOS 5.X дээр суулгаж байсан туршлага байвал туршилгаасаа хуваалцана уу?
Алдаа заагаад суухгүй юм.
Tesseract 3.00 суулгасан ч үр дүн нь буруу гараад байх юм.
Continue Reading...

10/10/2011

Android:XmlPullParser & Dialog


Блогтоо XmlPullParser & Dialog ашигласан жижигхэн жишээ оруулж байна. Та бүхэн санаа оноо авна биз дээ.


Тайлбар :

XmlPullParser функцыг ашигласнаар хавтсанд байрлах бүх XML файлуудыг уншиж файл тус бүрээр тэдгээрийн утгыг хялбараар ашиглаж болдог.



Тайлбар :

Энэ удаагынхаа жишээ нь Dialog ашиглах бүртээ тодорхойлох бус Dialog функыг нэг тодорхойлон хэд хэдэн удаа Dialog-н утга болон гарчигийн дахин тодорхойлж болохуйц жишээ болно.


assets хавтсанд dialog.xml файлыг үүсгэнэ.



XmlPullParser and Dialog
XmlPullParser and Dialog ашигласан жишээ


Жишээ код :

//Dialog Flg
public static final int DIALOG_FLG = 0;
//Dialog Title
public static final String STR_TITLE = "TITLE";
//Dialog Message
public static final String STR_MESSAGE = "MESSAGE";
// Tag-n ner
String STR_TAG = "";
// Value
String STR_VALUE = "";
//
Bundle data = new Bundle();
@Override
public void onCreate(Bundle savedInstanceState) {
try{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//XmlPullParser
XmlPullParser parser = Xml.newPullParser();
// assets Folder dahi xml file-diig unshih
AssetManager asset = getResources().getAssets();
InputStream is = null;
//dialog.xml file neeh
is = asset.open("dialog.xml");
InputStreamReader isr = new InputStreamReader(is);
parser.setInput(isr);

for (int type = parser.getEventType(); type != XmlPullParser.END_DOCUMENT;
type = parser.next()) {
switch(type) {
case XmlPullParser.START_TAG: // start tag
STR_TAG = parser.getName();
break;
case XmlPullParser.TEXT: // tag-n utga
STR_VALUE = parser.getText();
// utga bga esehiig shalgah
if(STR_VALUE.trim().length() != 0) {
// title tag-d bichigdsen utgiig data huvisagchid olgoh
if(STR_TAG.equals("title")) {
data.putString(STR_TITLE, STR_VALUE);
} else if(STR_TAG.equals("msg")) {
//msg tag-d bichigdsen utgiig data huvisagchid olgoh
data.putString(STR_MESSAGE, STR_VALUE);
}
}
break;
case XmlPullParser.END_TAG: // end tag
break;
}
}
//Dialog haruulah
showDialog(DIALOG_FLG, data);
}catch(Exception err){
Log.e("ERROR",err.getMessage());
}
}


@Override
protected Dialog onCreateDialog(int id){
return null;
}

@Override
protected Dialog onCreateDialog(int id, Bundle data){
Dialog dialog = null;
switch(id){
case DIALOG_FLG:
String title = data.getString(STR_TITLE);
String mes = data.getString(STR_MESSAGE);
dialog = new AlertDialog.Builder(this)
.setTitle(title)
.setMessage(mes)
.setPositiveButton("OK", null)
.create();
break;
}

return dialog;
}

@Override
protected void onPrepareDialog(int id,Dialog dialog,Bundle data){
switch(id){
case DIALOG_FLG:
String mes = data.getString(STR_MESSAGE);
AlertDialog ad = (AlertDialog)dialog;
ad.setMessage(mes);
break;
}
}

Continue Reading...
 

Надад итгэл бий Copyright © 2009 WoodMag is Designed by Ipietoon for Free Blogger Template