skrypt .bat

0

witam,
musze napisać prosty skrypt .bat który będzie mi wczytywał duzo insertów do bazy
ma ktoś jakiś pomysł jak to zrobić

0

Zawsze (chyba) do bazy jest dołączony jakiś interfejs konsolowy. Wpisz w bacie komendę logowania do bazy a potem te inserty, wszystko.

0

tyle to też wiem, chodzi mi o skrypt .bat, w którym będę odpalał polecenie sql, jak to zrobić to w sumie chyba wiem, tyle że tych insertów będzie sporo ponad 50k, kazdy z ok. 150kolumnami, plików będzie tez trochę, co bym potrzebował to zrobić jakiś pasek postępu, cokolwiek, jakaś forma informacji dla użytkownika ile do tej pory wczytało linii (1 linia = 1 insert) z pliku

0

Ale.. po co? Czemu nie moze to byc skrypt bat?

A przede wszystkim, jaka baza danych?

0

Człowieku a co więcej mogę Ci powiedzieć jak nie wiem jaka baza.

Tu masz o Firebirdzie http://www.destructor.de/firebird/isql.htm

0

baza oracla, samo polecenie wiem jak ma mniej więcej wyglądać
chyba coś takiego :

sqlplus user/pass@adres_hosta:1521/sid <nazwa pliku.sql

co mnie bardziej interesuje to jak w trakcie wykonywania tego skryptu gdy będą "leciały" kolejne inserty, wypisywać w konsoli postęp procentowy, lub jakiś inny, choćby info, że wczytano x krotek, co np. 1000 insertów.

0

I jeszcze może frytki do tego ;)?

0

Podziel ten plik na mniejsze czesci (nie wiem czy w windowsie sa do tego jakies polecenia), a potem wczytuj pokolei po jednej czesci i informuj o postepie. Wygladalo by to tak:

-podziel plik sql
-dodaj zapytania z pliku 1.sql
-wypisz (przykladowo) 10%
-dodaj zapytania z pliku 2.sql
(...)

0

no to proponuję nie .bat tylko .vbs, coś w deseń

Dim strSrv: strSrv="sqlserver,1433"
Dim strDB: strDB="baza"
Dim strLogin: strLogin="sa"
Dim strPass: strPass="haselko"

set objConn=CreateObject("ADODB.Connection")
objConn.Provider="SQLOLEDB.1;Password="&strPass&";Persist Security Info=True;User ID="&strLogin&";Initial Catalog="&strDB&";Data Source="&strSrv&""
objConn.open

set objComm=CreateObject("ADODB.Command")
objComm.ActiveConnection = objConn
'objComm.Properties("Page Sice")=1000

objComm.CommandText="update uzytkownicy set haslo='zam' where nazwisko = 'serwis';"
set objRS = objComm.Execute

objComm.CommandText="select * from uzytkownicy order by nazwisko;"
set objRS = objComm.Execute

While Not objRS.EOF
Wscript.Echo objRS.Fields(2).Value & " " & objRS.Fields(1)
' Wscript.Echo objRS.Items("nazwisko").Value & " " & objRS.Fields(1)
objRS.MoveNext
wend

objConn.Close

MsgBox("Zapytanie wykonane")

oczywiście teraz należy dorobić ładowanie insertów z pliku .sql, w pętelce pokazać jakiś progress

1 użytkowników online, w tym zalogowanych: 0, gości: 1