Jump to content
GarnetDagger

autoit firebird odbc insert or Update

Recommended Posts

GarnetDagger

I would love to have some help or guidance 

I am able to Query from my database but I am not able to Update or insert etc because I lack the knowledge for it

 

this is my code for to retrieve some data from and works perfect

 

Dim $ueberschriften = ""
Dim $anzahl = 0
Dim $dsncount = 1
Global $DSN = "MTXXV5"
Global $Query = "Select * from VIEWS"



Func SSSQL($SSQuery) ;SuperSonicSQL 
    ConsoleWrite($SSQuery & @LF)
    $cmboVal = ""
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open($DSN)
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoSQL = $SSQuery
    $adoRs.CursorType = 2
    $adoRs.LockType = 3
    $adoRs.Open($adoSQL, $adoCon)
    With $adoRs
        Global $QueryAnswer = .GetRows
    EndWith
    Return $QueryAnswer
EndFunc   ;==>SSSQL

and this is my failed attempt, The Query is correct but I want to able to use it in autoit instead of have to manual update or insert into flamerobin
 

$SS_SQL_Insert_or_Update = "INSERT INTO DETECTION (DNAME,DTYPE,WINNAME,AREA,COLOR,MOUSE) VALUES ('PopUpTradeInviteYes        s                    ','SEARCH','XXX','175,240,550,240,65,228,82,234','5062478','0') "



Func SSSQLIU($SS_SQL_Insert_or_Update) ;SuperSonicSQL :P
    $cmboVal = ""
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open($DSN)
    $adoRs = ObjCreate("ADODB.Record")
    $adoSQL =$SS_SQL_Insert_or_Update
;~     $adoRs.CursorType = 2
    $adoRs.LockType = 4
    $adoRs.Open($adoSQL, $adoCon)
;~     With $adoRs
;~         Global $QueryAnswer = .GetRows
;~     EndWith
;~     Return $QueryAnswer
EndFunc   ;==>SSSQL

I am at a total loss and I am just trying this at random but I am also going to sleep now

I would love to have some minor examples

"C:\_CC_V10_DetectionTAB.au3" (174) : ==> The requested action with this object has failed.:
$adoRs.Open($adoSQL, $adoCon)
$adoRs^ ERROR

Share this post


Link to post
Share on other sites
GarnetDagger

This seems to be the solution (at least for me)  any extra info or feedback is appreciated )

 

Func SSSQLIU($SS_SQL_Insert_or_Update) ;SuperSonicSQL :P
    $cmboVal = ""
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open($DSN) ;Data Source Name
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoSQL = $SS_SQL_Insert_or_Update
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
;~  $adoRs.Open($adoCon)
    $adoCon.Execute($adoSQL)
    $adoCon.Close
EndFunc   ;==>SSSQLIU

 

Share this post


Link to post
Share on other sites
jchd
Func SSSQLIU($SS_SQL_Insert_or_Update) ;SuperSonicSQL :P
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open($DSN) ;Data Source Name
    $adoCon.Execute($SS_SQL_Insert_or_Update)
    $adoCon.Close
EndFunc   ;==>SSSQLIU

You don't need a recordset object here, this is a command which doesn't produce results.

Also, you shouldn't open and close the connection for every SQL operation. Open the connection at program start, close it at program termination.

Edited by jchd

This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.
Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here
RegExp tutorial: enough to get started
PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.
SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.
An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.
SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)
A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!
SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

Share this post


Link to post
Share on other sites
mLipok

I encourage you to use:

 

 

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library
 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2018-10-15

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • hugomito
      By hugomito
      Hi all,
      I hope you can help me with this. I need to connect to a Database using Cloudera ODBC Driver for Impala. I installed the driver, created a User DSN (drona2) and tested it successfully (got the message: Successfully connected to data source!) but when I try to connect to the database using a Conneciton String, it simply didn't work.
      I tried connecting to the database using the User DSN, I previously created, that has all parameters needed but got the following error:
           $ProviderDatasource = 'DSN=drona2;'
           $conn_Database = ObjCreate ("ADODB.Connection")
           $conn_Database.ConnectionString = $ProviderDatasource
           $conn_Database.Open
           ==> The requested action with this object has failed.:
           $conn_Database.Open
           $conn_Database.Open^ ERROR
      Also I tried adding all parameters to my connection string as follows but also got the same error:
           $ProviderDatasource = 'Driver=Cloudera ODBC Driver for Impala;Host=MyHost.domain.com;PORT=21050;AuthMech=3;UID=MyUserId@domain.com;PWD=MyPasswordc;Schema=default;SSL=1;AllowSelfSignedCerts=1;AllowHostNameCNMismatch=1;CheckCertRevocation=1;KrbFQDN=_HOTS;KrbServiceName=impala;ServicePrincipalCanonicalization=1'
      I hope someone has used this driver successfully before and can shed some light here.
      If you need additional information, let me know.
      Regards,
    • Skysnake
      By Skysnake
      Question
      How to detect / determine if requested ODBC driver is not available? Not installed?  Is there a specific function / error code to check for?
      I asked this on the ADO.UDF support page, but I think the issue is not limited to that UDF.  What test can be run to determine if the requested ODBC data driver is available?
      Skysnake
    • cookiemonster
      By cookiemonster
      Hi,
       
      Im about to start making an autoit script that will read the current ODBC settings, have a drop down to select a different one which would then update the ODBC in windows to use the new settings.
      Can anyone point me in the direction of how to read the ODBC 32 bit settings? are they in the registry?
    • RichardL
      By RichardL
      Local $sAxName Local $oMSComm $sAxName = "MSCOMMLib.MSComm.1" $oMSComm = ObjCreate($sAxName) MsgBox(0, Default, StringFormat("Name: %s, Obj %d, Err %d", $sAxName, IsObj($oMSComm), @error)) I'm talking to serial ports (for Arduino) using the MSComm object.  It all runs fine from SciTE or .exe.  If I compile to .a3x the object is not created.  I could manage without .a3x but I like it because it compiles faster.
       
       
    • mjolnirmarkiv
      By mjolnirmarkiv
      Hi,
      I'm trying to connect to Firebird database via AutoIt. Something that was supposed to be a cakewalk so far ended with no succes, as usual hoping for your help.
      I'm using the following Firebird Direct Access for Visual Basic DLL: http://sourceforge.net/projects/fbdll4vb/files/. And the code below comes from Stephen Podhajecki (Eltorro) Firebird UDF (only parts I need at the moment):
      The code above gives me this:

      The specific kind of server\database I need to connect to is belong to following application if that matters: http://www.projetex.com/, it is using Firebird 2.5. While ODBC\123 comes from following settings in the Server Administrator utility:

      I've installed a VM with above mentioned application, server and databse running on it so I have admin rights to access it for testing. Nevertheless when I tried to use a gsec (a command prompt utility that comes with the app) to display a list of users it only gave me this:
      gsec -user Admin -password admin -database "C:\Program Files\AIT\Projetex 9\Projetex Server\Database\Projetex.fdb" -display
      use gsec -? to get help
      Your user name and password are not defined. Ask your database administrator to setp up a Firebird login.
      unable to open database.
      So I changed it to ODBC, and there was some progress:
      gsec -user ODBC -password 123 -database "C:\Program Files\AIT\Projetex 9\Projetex Server\Database\Projetex.fdb" -display
      invalid request BLR at offset 37
      table USERS is not defined
      I tried to add a user mjolnir\123 and this time there was no progress:
      gsec -user ODBC -password 123 -database "C:\Program Files\AIT\Projetex 9\Projetex Server\Database\Projetex.fdb" -add mjolnir -pw 123
      An error occured while attempting to add the user.
      invalid request BLR at offset 51
      table USERS is not defined
      It seems I'm not quite understand how the damn thing works. The Server Administrator utility have plenty of users including the admin, all of the have access to read the database and could do this via Projetex client, neither cann't do this nor via gsec, not programmaticlly via AutoIt code above. And then it says smth about "table USERS" which is not defined apparently, looks like database users is not the same thing as server users and I'm doing it wrong.
×