Heim  >  Artikel  >  Backend-Entwicklung  >  php odbc 访问 vfp9的表时 提示 不是一个表

php odbc 访问 vfp9的表时 提示 不是一个表

WBOY
WBOYOriginal
2016-06-23 14:14:151220Durchsuche

PHP odbc vfp9

使用 odbc 访问vfP的表 代码如下
<?header("Content-Type: text/html; charset=gb2312");$myconn=odbc_connect("vfp1","","");$strSql="select * from `xxku1`";$result=odbc_do($myconn,$strSql);?><table ><?while(odbc_fetch_row($result))//通过循环读取数据内容{?><tr><td align="center" height="19"><?echo odbc_result($result,1)?></td><td align="center"><?echo odbc_result($result,2)?></td><td align="center"><?echo odbc_result($result,3)?></td></tr><?}odbc_close($myconn);?></table>


用来操作vfp6的表一切正常 但是换了vfp9的表就提示不是一个表. 因为vfp9的表多了一个字段是自动增量型的, 把这个字段去掉也可以访问.
如过要访问有自动增量型字段的表应该如何处理呢,
网上有人说使用 OLE DB  我也下载了 OLDdb vfp, 但不知道怎么用

回复讨论(解决方案)

最新进展,  使用ADODB 也是失败 

$strSql="select * from  `xxku1`";
只有 mysql 才可以这样写
所以无论你使用 vfp 的版本,都不会得到正确的结果

下载一个 VFPODBC.msi (包名 VFPODBC.rar)安装一下就可以了

$strSql="select * from  `xxku1`";
只有 mysql 才可以这样写
所以无论你使用 vfp 的版本,都不会得到正确的结果

下载一个 VFPODBC.msi (包名 VFPODBC.rar)安装一下就可以了
VFPODBC.msi已经安装了
这样的写法在VFP 6 的表下是工作正常的, 只是 换了vfp9 下含有自增量字段的表就会报错

自增字段只在库(dbc)中才有效
所以你的 odbc 源应该是库(dbc)而不是自由表(dbf)

自增字段只在库(dbc)中才有效
所以你的 odbc 源应该是库(dbc)而不是自由表(dbf)
自增字段在自由表中一样使用的.  
我把这个ODBC源 改成dbc 把这个表加进去再试.  报同样的错误

那你就再安装个 vfpoledb 试试

那你就再安装个 vfpoledb 试试
安装了这个

但是不知道怎么用.....

<?#include('adodb5/adodb.inc.php'); header("Content-Type: text/html; charset=gb2312");$conn = new com("ADODB.Connection");$connstr = "drive{Provider=vfpoledb;dsn=vfp_sys_ftb};Data Source=F:/DFXT/XJJ;Collating Sequence=machine;";$conn->Open($connstr);#$conn = &ADONewConnection('VFP');#$dsn="Driver={Provider=VFPOLEDB.1};SourceType=DBF;SourceDB=f:/dfxt/xjj;Exclusive=No";#$conn->Connect($dsn);$strSql=$conn->Execute("select * from xxku");?>

错误提示

header("Content-Type: text/html; charset=gb2312");$conn = @new com("ADODB.Connection") or die ("ADO连接失败!"); $connstr = "Provider=VFPOLEDB.1;Data Source=f:\xxx;Collating Sequence=MACHINE";$conn->Open($connstr); 


错误提示
Fatal error: Uncaught exception 'com_exception' with message 'Source: ADODB.Connection
Description: 未找到提供程序。该程序可能未正确安装。' in D:\chinaz.com\WebSite\dfxt\TESTADO2.PHP:6 Stack trace: #0 D:\chinaz.com\WebSite\dfxt\TESTADO2.PHP(6): com->Open('Provider=VFPOLE...') #1 {main} thrown in D:\chinaz.com\WebSite\dfxt\TESTADO2.PHP on line 6

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn