Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > เชื่อมต่อข้อมูลกับระบบบัญชี Express สามารถทำได้ไหม ( Database File .DBF )



 

เชื่อมต่อข้อมูลกับระบบบัญชี Express สามารถทำได้ไหม ( Database File .DBF )

 



Topic : 136631



โพสกระทู้ ( 82 )
บทความ ( 0 )



สถานะออฟไลน์




Express เป็นฐานข้อมูลแบบ FoxPro ไฟล์ .DBF
ได้ทำการทดลองสร้างไฟล์ .DBF จากโปรแกรม Access โค้ดด้านล่างสามารถอ่านและแสดงผลได้
แต่พอลองเปลี่ยนเป็นไฟล์ที่เกิดจากระบบ Express แล้วไม่สามามมารถอ่านข้อมูลได้
ใครเคยเขียน Php เชื่อมต่อกับข้อมูลของ Express ไหมคะ หรือว่าไม่สามารถทำได้


Code (PHP)
<?PHP
$objConnect = odbc_connect("TESTDBF","","") or die("Error Connect to Database");
$strSQL = " SELECT * FROM ARRCPIT.DBF ";
$objExec = odbc_exec($objConnect, $strSQL) or die ("Error Execute [".$strSQL."]");
?>
<table width="600" border="1">
  <tr>
    <th width="91 "><div align="center">AAAAA</div></th>
    <th width="98 "><div align="center">BBBBB</div></th>
  </tr>
<?php
while($objResult = odbc_fetch_array($objExec)){
?>
  <tr>
    <td><?php echo $objResult["RCPNUM"];?></td>
    <td><?php echo $objResult["DOCNUM"];?></td>
  </tr>
<?php
}
?>
</table>
<?php
odbc_close($objConnect);
?>
</body>
</html>




Error การอ่านไฟล์ที่เกิดจากระบบ Express

Code (PHP)
Warning: odbc_exec(): SQL error: [Microsoft][ODBC dBASE Driver] External table is not in the expected format., SQL state S1000 in SQLExecDirect in C:\xampp\htdocs\odbc\index2.php on line 12
Error Execute [ SELECT * FROM ARRCPIT.DBF ]




Tag : PHP, Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2022-03-24 10:20:31 By : Pep_Fare View : 3106 Reply : 15
 

 
DBF ของ express น่าจะเป็น old format

ว่าจะบอกให้เปลี่ยน driver ใหม่ แต่ไม่แสดง error connection แสดงว่า connect ผ่าน
https://www.connectionstrings.com/visual-foxpro/

ผมไม่มี Express ในมือ ถ้าสะดวกลองส่งไฟล์ DBF ที่สร้างจาก Express มาเป็นกรณีศึกษาก็ดีครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-03-24 11:45:16 By : 009
 


 
https://www.connectionstrings.com/visual-foxpro/
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-03-25 15:58:19 By : 654
 

 

No. 3



โพสกระทู้ ( 82 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณนะคะ
ตั้งกระทู้เสร็จแล้วติดอีกงานเลยเพิ่งได้มาดูต่อ

https://drive.google.com/drive/folders/1oJTcR4i9AHlBdBFf7Mp9NhY9qcKQ_DjL?usp=sharing
ตัวอย่างไฟล์ ถ้าสะดวกรบกวนด้วยนะคะ


ไฟล์ที่เป็น version : dBase III จะสามารถอ่านข้อมูลได้

Express1.1


ไฟล์ที่เป็น version : Visual FoxPro ไม่สามารถดึงข้อมูลมาแสดงได้

Express2.1


ประวัติการแก้ไข
2022-03-30 14:38:01
2022-03-30 14:39:34
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-03-30 14:28:10 By : Pep_Fare
 


 

No. 4



โพสกระทู้ ( 82 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : 009 เมื่อวันที่ 2022-03-24 11:45:16
รายละเอียดของการตอบ ::
แนบไฟล์มากับคำตอบด้านล่าง ถ้าเปลี่ยน Driver มีแนะนำไหม รบกวนด้วยนะคะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-03-30 15:01:37 By : Pep_Fare
 


 

No. 5



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


https://www.somacon.com/p251.php
เห็นในนี้ใช้ PDO DSN odbc กับ dbf visual fox pro ได้ ไม่เคยลอง ไม่มี express
ทดลองดูว่าได้ไหมนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-03-30 15:15:15 By : mr.v
 


 
Quote:
อย่างแรก vfpodbc ไม่ support 64bit จึงทดสอบกับ php7+ ไม่สำเร็จ
และทดสอบกับ php5.x ที่เป็น 32bit แทน


1. Download vpfodbc.msi มาติดตั้ง แล้วเพิ่ม DSN
2. ตามไฟล์ตัวอย่างที่ให้ทดสอบจาก GDRIVE และโค้ดด้านล่างนี้ (คัดลอกของคุณมาเพิ่มคอลัมน์การแสดงผล)

Code (PHP)
<!DOCTYPE html>
<html>
<head>
<title>Test VFP DBF</title>
</head>
<body>

<?PHP
$objConnect = odbc_connect("testdbf","","") or die("Error Connect to Database");
$strSQL = "SELECT * FROM OESO.DBF";
$objExec = odbc_exec($objConnect, $strSQL) or die ("Error Execute [".$strSQL."]");
?>
<table width="600" border="1">
  <tr>
    <th width="91 "><div align="center">sonum</div></th>
    <th width="98 "><div align="center">amount</div></th>
    <th width="91 "><div align="center">slmcod</div></th>
    <th width="98 "><div align="center">cuscod</div></th>
  </tr>
<?php
while($objResult = odbc_fetch_array($objExec)){
?>
  <tr>
    <td><?php echo $objResult["sonum"];?></td>
    <td><?php echo $objResult["amount"];?></td>
    <td><?php echo $objResult["slmcod"];?></td>
    <td><?php echo $objResult["cuscod"];?></td>
  </tr>
<?php
}
?>
</table>
<?php
odbc_close($objConnect);
?>
</body>
</html>


3. ได้ผลลัพธ์ ตามนี้

utf-8


thai code page


4. จะเห็นว่ามีปัญหาการแสดง unicode ...เป็นความรู้ของ FoxPro(ถ้ากำหนดได้ลองใช้ nvarchar...แต่เดาว่า express คง gen ออกมาให้) ...ไปแก้เองนะครับ 555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-03-30 22:12:41 By : 009
 


 

No. 7



โพสกระทู้ ( 82 )
บทความ ( 0 )



สถานะออฟไลน์


เชื่อมต่อ PHP กับไฟล์ .DFB ได้แล้วแต่ติดปัญหาตรงที่อ่านได้แค่ไฟลล์ในเครื่องตัวเอง

เปลี่ยนเป็นอ่านข้อมูลจากการ Map Drive หรืออ่านข้ามเครื่อง จะขึ้น ERROR ดังรูป
เหมือนว่าเชื่อมต่อ Database ได้ แต่อ่านข้อมูลไม่ได้ ไม่รู้จะแก้ยังไงแล้ว ลองมาหลายวิธีก็ยังทำไม่ได้ t_t
รบกวนขอคำแนะนำหน่อยนะคะ

ERROR
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-04-04 15:22:26 By : Pep_Fare
 


 
เครื่องที่อ่านได้ติดตั้ง driver/runtime หรือยัง

ตอน connect ใช้ connection string หรือ DSN ถ้าอย่างหลังได้สร้าง DSN เพื่อชี้ไปยัง Network Drive หรือไม่

อีกวิธี encrypt data ผ่าน webservice
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-04-04 18:02:20 By : 009
 


 

No. 9



โพสกระทู้ ( 82 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : 009 เมื่อวันที่ 2022-04-04 18:02:20
รายละเอียดของการตอบ ::

เครื่องที่อ่านได้ติดตั้ง driver แล้ว แต่ runtime หมายถึงตัวไหนตกหล่นอะไรไปไหม?

connect ผ่าน DSN อ่านไฟลล์ที่เครื่องตัวเองได้ แต่ถ้าเปลี่ยน Path ไปชี้ที่ Network Drive ที่สร้างไว้
จะ error : Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Visual FoxPro Driver]File 'oeso.dbf' does not exist.

ถ้าเชื่อมต่อผ่าน User DNS จะ Connect ไม่ผ่านเลย
เปลี่ยนใช้ System DSN ผลคือ Connect ผ่าน อ่านและจัดการข้อมูลได้

odbc


connection string ก็ได้ผลเหมือนกันคือ อ่านไฟลล์ที่เครื่องตัวเองได้
ถ้าเปลี่ยน path เป็น Network Drive จะแสดง error ข้อความเดียวกัน

Code (PHP)
$dsn = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=C:\ep;Exclusive=NO;collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";
$objConnect = odbc_connect($dsn,'','') or die("Error Connect to Database");




ส่วนวิธีนี้ encrypt data ผ่าน webservice ขอลองหาวิธีทำดูก่อนนะคะ ^___^


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-04-05 10:49:55 By : Pep_Fare
 


 

No. 10



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


ถ้ามันอ่านไฟล์เดียวกัน
ในเครื่องได้
ผ่าน network ไม่ได้
ทำไมไม่ map network มาเป็นส่วนหนึ่งที่ web server เข้าถึงได้ แล้วก็ใช้ PHP ดาวน์โหลดมันลงมาก่อน แล้วค่อยเปิดอ่าน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-04-05 11:51:41 By : mr.v
 


 
จุดประสงค์การติดตั้ง runtime เพื่อให้มันลง driver ให้ ถ้าลง driver แล้วก็ไม่ต้องลง runtime อีกครับ
(runtime คือ driver+interface สามารถจัดการฐานข้อมูลได้โดยไม่ต้องลง client application ในที่นี้ คือ Visual FoxPro)

ส่วนการ connect ผ่าน Network Drive จริงๆ ไม่เคยลอง แต่เคยอ่านเจอว่าสำหรับ ODBC Driver ถ้า folder ที่ map ไม่มี permission แบบ writable เครื่องปลายทางจะ connect หรือติดต่อกับ ไฟล์ที่อยู่ใน map drive ไม่ได้

webservice ก็พวก Restful API นั่นแหละครับ แต่ควร expose เฉพาะส่วนของข้อมูลที่ต้องการ
(แน่นอนว่าควร encrypt ก่อน แม้จะมี access token ก็ตาม)

หรือทำตามคุณวี คือ โหลดข้อมูลมายังเครื่องที่จะใช้อ่านทั้งไฟล์เลยแล้วจะได้การ connect ด้วย DSN แบบ local

ลองดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-04-05 12:43:51 By : 009
 


 

No. 12



โพสกระทู้ ( 82 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : mr.v เมื่อวันที่ 2022-04-05 11:51:41
รายละเอียดของการตอบ ::
วิธีนี้น่าสนใจ ขอบคุณที่แนะนำนะคะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-04-05 13:05:35 By : Pep_Fare
 


 

No. 13



โพสกระทู้ ( 82 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : 009 เมื่อวันที่ 2022-04-05 12:43:51
รายละเอียดของการตอบ ::
คิดว่าน่าจะใช้วิธีโหลดไฟล์มาอ่านข้อมูลแล้วค่ะ
แต่ถ้างานต่อไปต้องส่งข้อมูลไปบันทึกด้วยอาจจะต้องมาดูวิธีว่าจะทำยังไงได้บ้าง
ขอบคุณที่มากๆเลย สำหรับคำแนะนำ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-04-05 13:35:06 By : Pep_Fare
 


 

No. 14



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


ถ้าต้องบันทึกข้อมูลด้วย ก็ใช้หลักการคล้ายของเดิม
อาจจะติดตั้ง web server ทางเครื่องที่เก็บไฟล์ด้วยเลย แล้วให้มันทำหน้าที่แค่
ตรวจ api key -> ถ้าถูกก็รอรับคำสั่ง,
สั่งดาวน์โหลด -> ก็ส่งไฟล์ที่จะเอาไปแก้ให้ปลายทางที่เรียก ใช้หลักการส่ง download content อย่างพวก readfile() (ลองหา php force download),
สั่งอัพโหลด คือแก้มาเสร็จแล้ว -> ก็รับไฟล์มาวางทับของเก่า ใช้หลักการ upload ธรรมดา

วิธีนี้จะป้องกันการเรียกสุ่มจากภายนอกได้ เพราะต้องตรวจ api key เสมอ. ให้เฉพาะมาจากปลายทางที่เราอนุญาต.
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-04-05 14:35:05 By : mr.v
 


 

No. 15



โพสกระทู้ ( 43 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ใช้อยู่
Connect RealTime ระบบบัญชี Express

Web Server->Request APIs ไปยัง Server Express

1. ติดตั้ง
Microsoft Visual C++ 2015-2019 Redistributable
Microsoft OLE DB Provider for Visual Foxpro 8 และ 9
ที่ Server Express

2. Download "ADOdb"
https://adodb.org/dokuwiki/doku.php?id=index

3. สร้าง REST SERVER

QUERY

Code (PHP)
require_once(FCPATH.'ADOdb-5.21.2/adodb.inc.php');

public function stmasTable($path_db = 'D:\EXPRESS\FolderName') {
   $conn = ADONewConnection('ado')or die("Unable to connect DB");
   $dsn = "Provider=vfpoledb;Data Source=".realpath($path_db)."";
   $conn->Connect($dsn);
   $conn->setFetchMode(ADODB_FETCH_ASSOC);
   $query_select = "T1.`stkcod`,
      T1.`stkdes`,
      T1.`stkdes2`,
      T1.`stktyp`,
      T1.`stkgrp`,
      T2.`typdes`,
      T1.`stkcods`,
      T1.`acccod`,
      T1.`barcod`,
      T1.`stkclass`,
      T1.`negallow`,
      DTOC(T1.`lasupd`) AS `lasupd`,
      T1.`packing`,
      T1.`qucod`,
      T1.`cqucod`,
      T3.`typdes` AS `unit`,
      T1.`cfactor`,
      T1.`totbal`,
      T1.`pqucod`,
      T1.`mlotnum`,
      T1.`remark`,
      T1.`dat1`,
      T1.`dat2`,
      T1.`num1`,
      T1.`str1`,
      T1.`str2`,
      T1.`str3`,
      T1.`str4`,
      T1.`lsellqu`,
      T1.`lsellfac`,
      T1.`lsellpr`,
      DTOC(T1.`lseldat`) AS `lseldat`,
      T1.`creby`,
      DTOC(T1.`credat`) AS `credat`,
      T1.`userid`,
      DTOC(T1.chgdat) AS `chgdat`";
   $result = $conn->Execute("SELECT 
      {$query_select}
   FROM 
      `stmas` T1 
   LEFT JOIN
      `istab` T2 ON T1.`stkgrp` = T2.`typcod` AND T2.`tabtyp` = '22'
   LEFT JOIN
      `istab` T3 ON T1.`cqucod` = T3.`typcod` AND T3.`tabtyp` = '20'
   WHERE 
      T1.`stktyp` = '0' 
      AND 
      T1.`totbal` > 0 
   ORDER BY 
      T1.`stkcod` ASC");
   return $result;
}


Express Inventory
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2024-10-22 10:34:31 By : Guest
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เชื่อมต่อข้อมูลกับระบบบัญชี Express สามารถทำได้ไหม ( Database File .DBF )
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่