GarnetDagger

autoit firebird odbc insert or Update

4 posts in this topic

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



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

#3 ·  Posted (edited)

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

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 *
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 API *

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

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 * Best coding practices * 

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) * 

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: 2017-06-04

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

    • 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.
    • jaeger52
      By jaeger52
      Hello all! I've been scouring the interwebs for a whiff of anybody else who's had this problem and come up empty. Here's the deal: I wrote a simple little script that I've used for months now quite successfully, but I'm also experiencing an error where the ODBC login window will pop up, garbage text will automatically dump into the username, password, and sometimes the source fields, and then it will automatically try to log in and cause it to fail. It's intermittent, and I have no idea what's causing it. It happens in databases that I've never automated, but it does exactly what the script I wrote should do except that it's garbage text being entered. I've attached the script I mentioned. I'd appreciate anything anybody can suggest or recommend. Thanks!
      Send ( "{LWin}" ) Sleep ( 2000 ) Send ("Drive:\Folder\Database.accdb /x Macro") Send ( "{ENTER}" ) WinWaitActive ( "Oracle ODBC Driver Connect" ) Send ( "Username" ) Send ( "{TAB}" ) Send ( "Password" ) ControlClick ( "Oracle ODBC Driver Connect", "OK", 1 )  
    • bab
      By bab
      I need to change/edit the password on a system dsn that uses sql authentication. I need to modify this  on 400 workstations. I wrote the following to change the password: 
       
      run("rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl",@SystemDir,@SW_HIDE)
      winwait("ODBC Data Source Administrator")
      ControlCommand ( "ODBC Data Source Administrator", "", "SysTabControl321" , "tabright")
      Send("!c")
      winwait("Microsoft SQL Server DSN Configuration")
      WinWaitActive("Microsoft SQL Server DSN Configuration", "This wizard")
      Send("!n")
      WinWaitActive("Microsoft SQL Server DSN Configuration", "How should")
      Send("!P")
      sleep(100)
      send("newpassword")
      sleep(100)
      Send("!n")
      WinWaitActive("Microsoft SQL Server DSN Configuration", "")
      Send("!n")
      WinWaitActive("Microsoft SQL Server DSN Configuration", "&Change the language of SQL Server system messages to")
      Send("!c")
      Send("{ENTER}")
      winwait("ODBC Microsoft SQL Server Setup")
      send("!t")
      WinWaitActive("SQL Server ODBC Data Source Test", "Test Results")
      Send("{ENTER}")
      winwait("ODBC Microsoft SQL Server Setup")
      send("{TAB}")
      sleep(100)
      Send("{ENTER}")
      winwait("ODBC Data Source Administrator")
      Send("{ENTER}")
      My dilemma is that I have more than one system dsn. I cannot get to the right system dsn to edit (click the configure button). The editor does not show this list or text. How can I move to the right dsn to modify.
      This is for 3rd party software; I have to use sql authentication. Thanks to anyone that can help.