PDA

View Full Version : مشكل در اجراي متد در برنامه تحت شبكه(method. .... not supported by automation object)



mydelphi
یک شنبه 27 شهریور 1401, 14:15 عصر
با سلام من در اجراي متد بروي سرور به مشكل برخودرد كردم(البته هر دستور دیگه مثل گرفتن ساعت و تاریخ هم باشه با این پیام مواجه می شم‌...) دوستان كسي ميتونه كمك كنه .... ممنون
در سمت سرور:


function TAdminAutomation.SqlRun(var Sender: WideString): Shortint;
begin
try
Query1.Active:=False;
Query1.SQL.Clear;
Query1.SQL.Add(Sender);
Query1.Active:=True;
Result:=0;
except
Result:=1;
end;
end;


در سمت كلاينت


ClientDataSet1.Active:=False;
ClientDataSet1.CommandText:='';
SocketConnection1.Connected:=True;
SocketConnection1.AppServer.SqlRun('SELECT * FROM users');
ClientDataSet1.Active:=True;


ايراد:
154024

mydelphi
شنبه 02 مهر 1401, 12:14 عصر
دوستان كسي مي تونه كمك كنه

mydelphi
شنبه 09 مهر 1401, 08:19 صبح
ممنون ميشم اگه كسي كمك كنه....

mydelphi
یک شنبه 10 مهر 1401, 14:46 عصر
سلام دوستان من موفق شدم مشكل رو حل كنم
در سمت سرور در قسمت View گزينه TypeLibarye رو انتخاب و متد هاي مد نظر مثل SqlRun را ايجاد و بعد در RemoteDataModule تابع رو تعريف مي كنيم و در سمت كلايت فراخواني صورت مي گيره ..... فقط مشكل در اجراي كويري در سمت كلاين هست كه پيام خطاي sql error code 8179 رو میده؟؟؟؟
دوستان کسی برخورد داشته با این پيام ؟؟؟؟؟

154039

ROSTAM2
یک شنبه 10 مهر 1401, 17:51 عصر
سلام.


program ProjectMysqlADO;


{$APPTYPE CONSOLE}


uses
ActiveX,
DB,
ADODB,
SysUtils;


const
//the connection string
StrConnection='Driver={MySQL ODBC 3.51 Driver};Server=%s;Database=%s;User=%s; Password=%s;Option=3;';




var
AdoConnection : TADOConnection;


procedure SetupConnection(DataBase:String);//Open a connection
begin
Writeln('Connecting to MySQL');
AdoConnection:=TADOConnection.Create(nil);
AdoConnection.LoginPrompt:=False;//dont ask for the login parameters
AdoConnection.ConnectionString:=Format(StrConnecti on,['your_server',DataBase,'your_user','your_password']);
AdoConnection.Connected:=True; //open the connection
Writeln('Connected');
end;


procedure CloseConnection;//Close an open connection
begin
Writeln('Closing connection to MySQL');
if AdoConnection.Connected then
AdoConnection.Close;
AdoConnection.Free;
Writeln('Connection closed');
end;


procedure CreateDatabase(Database:string);
begin
Writeln('Creating Database '+database);
AdoConnection.Execute('CREATE DATABASE IF NOT EXISTS '+Database,cmdText);
Writeln('Database '+database+' created');
end;


procedure CreateTables;
begin
Writeln('Creating Tables');
AdoConnection.Execute(
'CREATE TABLE IF NOT EXISTS customers ('+
'id INT,'+
'name VARCHAR(100),'+
'country VARCHAR(25) )',cmdText);
Writeln('Tables Created');
end;




procedure DeleteData;
begin
Writeln('Deleting dummy data');
AdoConnection.Execute('DELETE FROM customers');
Writeln('Data deleted');
end;


procedure InsertData;


Procedure InsertReg(id:integer;name,country:string);
var
ADOCommand : TADOCommand;
begin
ADOCommand:=TADOCommand.Create(nil);
try
ADOCommand.Connection:=AdoConnection;
ADOCommand.Parameters.Clear;
ADOCommand.CommandText:='INSERT INTO customers (id,name,country) VALUES (:id,:name,:country)';
ADOCommand.ParamCheck:=False;
ADOCommand.Parameters.ParamByName('id').Value := id;
ADOCommand.Parameters.ParamByName('name').Value := name;
ADOCommand.Parameters.ParamByName('country').Value := country;
ADOCommand.Execute;
finally
ADOCommand.Free;
end;
end;


begin
Writeln('Inserting Data');
InsertReg(1,'Lilian Kelly','UK');
InsertReg(2,'John and Sons','USA');
InsertReg(3,'William Suo','USA');
InsertReg(4,'MARCOTEC','UK');
Writeln('Data Inserted');
end;


procedure ReadData;
var
AdoQuery : TADOQuery;
begin
AdoQuery:=TADOQuery.Create(nil);
try
AdoQuery.Connection:=AdoConnection;
AdoQuery.SQL.Add('SELECT * FROM customers');
AdoQuery.Open;
while not AdoQuery.eof do
begin
Writeln(format('%s %s %s',[AdoQuery.FieldByname('id').AsString,AdoQuery.Field Byname('name').AsString,AdoQuery.FieldByname('coun try').AsString]));
AdoQuery.Next;
end;
finally
AdoQuery.Free;
end;
end;


begin
CoInitialize(nil); // call CoInitialize()
try
Writeln('Init');
try
SetupConnection('mysql'); //first will connect to the mysql database , this database always exist
CreateDatabase('Mydb'); //now we create the database
CloseConnection; //close the original connection
SetupConnection('Mydb'); //open the connection pointing to the Mydb database
CreateTables; //create a sample table
DeleteData; //Delete the dummy data before insert
InsertData; //insert a dummy data
ReadData; //read the inserted data
CloseConnection; //close the connection
except
on E : Exception do
Writeln(E.Classname, ': ', E.Message);
end;
Readln;
finally
CoUnInitialize; // free memory
end;
end.


https://www.cdata.com/kb/tech/sql-odbc-delphi.rst (https://stackoverflow.com/questions/2918016/delphi-7-ado-need-basic-coding-example)

SqlClient Data Access Components for Delphi - CrystalNet Technologies LTD (crystalnet-tech.com) (https://www.crystalnet-tech.com/ADONetVcl/DAC/SqlClient/Default)

https://www.thoughtco.com/sql-in-delphi-4092571

https://feb.unpas.ac.id/fe_app/index.php?Sl4zKn8nKzIoKycoLm0uKDwkMSJvfDIwCTYoKXUu LDExPgQUEQYWSgcVHAABDgBCCgocARoaWREUWQgdHA