阅读:1623回复:0
关于ArcSDE SDK C API的问题
最近在写一个用ArcSDE访问空间数据库的小程序,写了个如下的小例子<BR><BR>#include <sdetype.h><BR>#include <string><BR>#include <iostream><BR><BR>#include "check_error.h"<BR><BR><BR>int main(int,char*[])<BR>{<BR> SE_CONNECTION connection;<BR> SE_STREAM stream;<BR> SE_SQL_CONSTRUCT *construct;<BR> <BR> SE_ERROR error;<BR> LONG rc;<BR> <BR> SHORT num_columns;<BR> CHAR *server,*instance,*database,*username,*password;<BR> CHAR **columns;<BR> <BR> <BR> server="192.168.20.1";<BR> instance="5151";<BR> database="sde";<BR> username="sde";<BR> password="sde";<BR> <BR> rc = SE_connection_create(server,instance,database,username,password,;error,;connection);<BR> //check_error(connection,NULL,rc,"SE_connection_create");<BR> <BR> if(rc==0){<BR> rc = SE_stream_create(connection,;stream);<BR> if(rc==0){<BR> rc=SE_sql_construct_alloc(1,;construct);<BR> construct->where=(char*)malloc(20);<BR> construct->num_tables=1;<BR> strncpy(construct->tables[0],"SDE.NODE",sizeof(construct->tables[0]));<BR> strncpy(construct->where,"",sizeof(construct->where));<BR> num_columns=1;<BR> columns=(CHAR**)malloc(num_columns*sizeof(CHAR*));<BR> columns[0]="'*'";<BR> rc = SE_stream_query(stream,num_columns,(const char**)columns,construct);<BR> check_error(connection,stream,rc,"SE_stream_query");<BR> rc = SE_stream_execute(stream); <BR> std::cout<<"error code:"<<rc<<std::endl;<BR> } <BR> rc = SE_stream_free(stream);<BR> }<BR> std::cout<<"error code:"<<rc<<std::endl;<BR> SE_connection_free(connection);<BR> return 1;<BR>}<BR><BR>上面的代码无非就是连接了数据库,创建了一个stream,在后边SE_stream_query的时候居然rc=-51下边是相关的错误信息<BR>SE_stream_query encountered a -51 error:<BR>Underlying DBMS error<BR>Extended error code: 0, extended error string:<BR><BR>实在是不知道该如何下手处理这问题了,还望大家指教!
|
|