From 9fd71225e73f37301ac158b16c2249b150cce3cc Mon Sep 17 00:00:00 2001 From: craig_wright156 Date: Thu, 20 Jul 2023 22:11:38 +0100 Subject: [PATCH] bugfix messed up indenting --- ...3a3f205-8a6a-4ee9-8193-9aff4ca423a5.vsidx} | Bin 19112 -> 19112 bytes ...5ca6f61c-8e71-4c1e-8427-f46e017c669c.vsidx | Bin 0 -> 12981 bytes .vs/slnx.sqlite | Bin 90112 -> 90112 bytes nodes/MSSqlNode.py | 101 +++++++++--------- 4 files changed, 51 insertions(+), 50 deletions(-) rename .vs/ComfyUI-LexMSDBNodes/FileContentIndex/{345a480a-a19c-40f5-addb-24938b927979.vsidx => 53a3f205-8a6a-4ee9-8193-9aff4ca423a5.vsidx} (67%) create mode 100644 .vs/ComfyUI-LexMSDBNodes/FileContentIndex/5ca6f61c-8e71-4c1e-8427-f46e017c669c.vsidx diff --git a/.vs/ComfyUI-LexMSDBNodes/FileContentIndex/345a480a-a19c-40f5-addb-24938b927979.vsidx b/.vs/ComfyUI-LexMSDBNodes/FileContentIndex/53a3f205-8a6a-4ee9-8193-9aff4ca423a5.vsidx similarity index 67% rename from .vs/ComfyUI-LexMSDBNodes/FileContentIndex/345a480a-a19c-40f5-addb-24938b927979.vsidx rename to .vs/ComfyUI-LexMSDBNodes/FileContentIndex/53a3f205-8a6a-4ee9-8193-9aff4ca423a5.vsidx index 70194793512043b543232693296f18cc699fd8ae..440cde81ebc25c905fca656337716240819fe4c2 100644 GIT binary patch delta 5497 zcmZvgyNe`M6vn4p#i9cl9ab8nrVwp9kX2XQhmT*%kHvepm199SrK@Jihatb8p?M>Y4uSQUCVnv+wSz ziqX!_&Kwv6vjl6b#np*Exee9;tdf;$jp_c8vP-NQu(rgSjoOFqzNwOVE(SuhNK7pU zv2d5f7%dYni=3R#z2k$D=9)C4NC#t4=c3={kqmCE1@6`PxLDV4Vll zKTL@Z%d7%sg+3&n*jlli2KEM60FJQ6S^`6gsi0t1t6FHzsiitP{M6wE`q7DsMte*KC992$x2C!JOlFiBq&6-cyb)wBO%z z=QFZuQW+FiLra(k#?CIVFHlinU59m4rG5U9y?D@7T_pW8SjxBs4GLO+ljwll(^{A2 zFz=Av0G}kD*&&2>JQH81MDHPUbA%O{8886(1RcjM!xiUv4{JosPCb_3SZmxowAMbc zj{$pJ#G*%gaPP5aO1xRPcBCotDXxotkE|4-O9^*lK^CR0BQ?fdwLjiFtv5rE}x_a z;(_W2dMh5s(pBF&rF-ju1>or@+TAnL$0U{ntIeVk#ffOY%w znX+g5Tgutdn(!W!9KrY(hfllQm$S4_6d*|9xf@Fsr-o^Whuo8cN)7*?;2Z zffq?@PQp$O*x#KscyJyAieK5!!C>-MYrrELbeA~ahN%-DvD~E9ef&Gj;f{w2i{Ou10CQuZH%R$ z315w#E6Y}7Jz-LuL*9k<;)AzW6VeUfF|p(g+{19imri~H?IcCZGOY||g#wiqfdTLb zncYm(ArxMSJPqzy38x1Zz$9E-2US5ScB-LxFz3ngEZa$P=KY^**+HnSqKtLFpyhDR zVa$D$Etn|b>8`Nctq$v^aK)h)xK3&JN#a@Nos8$NBI8}OeSeZaY}f~eGGSbAY)^Hoj73!@e2|X zv#Ns5e+QJTZ@USxOc5X#aYykM!$CGH8kQd?{#cB4W3Ri3#>>C#@1~!=KLKLYu8w|E3y2)Ort>XV(k@NW2;1_qOBf2 zR`qhPif?`DYZ5lgr9L0Nlon(ab_(y|KCyYyn_zivt_wzdDDs&oJVEYzUI(K^Vnd0~ zno|}jA;sCIQ1*d%@UR?V4A}~YvB!+q3UHfnua8e>(Z2fdUi>rEZImgD13M}z)=_;x z%#Vayn@7)Ol55CpvW4bO#%U>1pd_B&Q zv4L+#H)u(0k>JQ5rG7vCdS3~&a1(gJ9%*MMo45)Wuch=!q|FKq?vaX~*f&@6BpaKN S=>E&zyrm^4Li_TgC;kENKG}Z& delta 5500 zcmZvfUx-yz6o=>9Xl4|nC4>omw< zP{K*F$haob#Rx>DB-1n|@FCw4!cYl%i|T0*BAxd4Z9QiSAMTI!Z~xZXYp;FIxy^l* z=Dy0&?-ypRm6n#4ZeSYFR=_c&`9K9ofDM3g14yp}gTN7>T&v9$KjWAH&H*Vf1}p@U zO1^s0oXp6*(GaYbR7af&dr+|%v(<;4$W<(Z|p1*?%q$$WEz zv!xA41-Xz+e>;|vPXejxEL#F7bvO;O$}j+-lIPJdNdXd?ZWNpI^e2)%Gl||wSX5u%tc#*uS7p2-*?W%*WV;#I8h#$3xc_f%h; zjh=*G?6Ntz4L394^`6#{8sQfma&=&{K)t4OCxiKgo@(|L?vp?QNNvFl)SZ9~+T47G zO`4Hnh3d^~dTW_px0n)VF@jBb728;4Ye085fNr40*(58H!6j*kh>8CocpKocS#%xM z0=;<7`&w*zC-WbBYnAEwU%l0A2I_<}VJVIHya`YP z#(-adCSZD3xUpI#-@WvawozOSAYRP;+ojdaDB~RfCE@;p$dj@NXVn!pwY=XpEZ#Sk zxs_{37B(1!DSNa82`+h~6fY9(1ISE*I~~X2HfAC916{y}fN^>)rd%7P5D^nww8d0e zR>#3MSH@?NCG}z)!Yw$5u6rNbZ-AU+37cLC2J)RxR5LGmh9{n25T?w^ zK^zXYG?vweO;zyp=OY(H=g0FEaQnl(6mDj==qdhh~39N$Y^g8rj3D?Pbj<_M9 z{92OWQZU8t_2Vs94Cd!nwr6rJ!1D%h6}Skv3Demwk6S_?4>JjItQ{^LTd>^&YzMvu z{FZ$f$?TGjpqgmXw}qRP)qM&EdbD+-8-R1>kw|zJ+i3X3X?2B9eh07@?^YlMhVxTT zKAJgBw#zoS`Xmqp-Nux^4D-T z0YCF+1!2md%Ifi&#QLq*Jt@gD0YO<{y-=;PRI51n=FH;h|9(r4jk6AKgSDEZlMo%2 zs_LuNyV$@xJN#nN_o13DL2}!6)nyhajAXcdbge{s3vi2qnVdDZSPqxz4p z*(gIS-(gafbpO;G>u-*VTyNqr(`FP$&dJ1Mq<<8&juVuc}JuZ!QcMNwEuoBf-s7ju^!S14g!*4;0bw38{ zorCuRuosX|7(u=4K+2_VcN0ABr{vOh6~|0q3*d_WAjCfGESAY{zdVml9A)D2Z%z{I zSsb7=h*A24Xt%QrDGk5KZ^`-fVVOOuBP9hm4LU6AI*vBKxTTJNX)q1} zz84HMr>qjn@E9Sg@>{RPSeqd_gz~#hZ);dudE#A!(QE;(@*Rc72 z_X<)2_|mu_#9$}D(I3ZQd)&x&RPUIZ%N!}G1t(FD&;y~46v;Z~!r&ICVRN+K#%4u^ zG;z4BhQq&jKA3&4dtW7}JAX@vHnDCcY3kOBSFY2jmNkKt08PNd;blK%QY0|gi8ZHu z^H?zhI2K@Oq_I;^VRUx`NG{%mWJRjxbdZMg&8usf4+%Xd2z0g|3_|SGr-if`?@xfY z!LA%e{SNRHWwB}p$&vCsW)2(R3MGd(c5eg*jb0dOTw<*g!8zsFjI;hBmh}P00guD7 zhEYd>a&GlHDSoP7#=9{>Og~wp9 z-Ec5`vbw*%us-g2$}4pptd{0F1O4CRR-Joof+1$A!j%FZvyu+m&vPt0p~GWwuX1#T1u>yxvI2rGQ{%8$ z>$EV7^^_!4EwjZ_QnzkyUfhAyy{HljZm8@?f_E!$_P=okYcu5NZM=p6(^}Gecy0H; DJXxwB diff --git a/.vs/ComfyUI-LexMSDBNodes/FileContentIndex/5ca6f61c-8e71-4c1e-8427-f46e017c669c.vsidx b/.vs/ComfyUI-LexMSDBNodes/FileContentIndex/5ca6f61c-8e71-4c1e-8427-f46e017c669c.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..ba0db7da81672b6ef2d46d4c5e52efbd06b2fa67 GIT binary patch literal 12981 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 F`5zT)@gx8M literal 0 HcmV?d00001 diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index 9ed2965a5b825ffb09285d427f1fdcbebec4cd61..0c129d841cec65c01f938a41fa3c61aea9b992fe 100644 GIT binary patch delta 503 zcmZoTz}j$tb%Hb_|3n#QM*fWnlk^#dH-FaG5nxy51H;9F3Vf_f?HM`QCd$F!D#fuUNFfs-vcKQApaT`w~)6C`tUUsWF88U{_6dIx@pXt0zJ8-p?<2U~o6 zL1l7caz<)=JO`3dGO9qMe1n4vbNupCQuPWd!P@pZdQ3jym&^*baI%5_MR|TR25x>G z2L2!XANbSxPx43byYuVtPvd{Y-^jn7fBj~efZcp7Kt+Kd$NCEcS;hzl3Ie$z2uqR+ zDoZl*`I(g&ksKw&$t=#82XsR*2Y)$(AVPIPCEsNCcmo!ozquw?$1h=D#Sey?1r^%) zC8ULfffAyE{0A6V`B|A6899W2d{(~6NAqpu`Bj0AmSW)l&i{@-n*RvD7r!~b6n`)O zeg1O(75pnU%M>i(V+AS-V+6T6R7e=eHe*C~wF)&Y+Ak delta 267 zcmZoTz}j$tb%Hb_$3z)tMvjdMlk^#RH-FaG5nyiOYuYTRkj%&EHaXi*R+We2c4uN( zdfGY$1_l{rMh>?4_=3vh#N>?B_;?PO+~gB}$*f>ilMVbYN&}U0^Sd+f|KR_?pU!`h zKZ4(#znp&>|0Dj!%?bg#`6e!KWz?IT??DZ_b~?-^+iWzkIVo!4jbP9!y4z dAPYpm`h*yftN@x}UT@06#UjqIxuAZ+0|3QUO_2Zq diff --git a/nodes/MSSqlNode.py b/nodes/MSSqlNode.py index 9578230..e5fb2e0 100644 --- a/nodes/MSSqlNode.py +++ b/nodes/MSSqlNode.py @@ -21,7 +21,7 @@ class MSSQLFn: for table in tables: cursor.execute(f"SELECT * FROM {table}") columns = {column[0]: column[1] for column in cursor.description} - print(columns) + # print(columns) table_info[table] = columns fields = table_info['txt2img'] @@ -45,7 +45,7 @@ class MSSQLFn: else: input_type = "STRING" # default type field_types[field] = input_type - print(field_types) + # print(field_types) return tuple(field_types.values()) @staticmethod @@ -67,7 +67,7 @@ class MSSQLFn: else: input_type = "STRING" # default type field_types[field] = input_type - print(field_types) + # print(field_types) return tuple(field_types.keys()) @staticmethod def readConfig(): @@ -118,6 +118,7 @@ class MSSQLQueryNode: cursor.execute(query) result = cursor.fetchall() return (str(result),) + conn = None connection_string = '' self ={"conn":conn,"connection_string":connection_string} @@ -170,56 +171,56 @@ class MSSqlTableNode: CATEGORY = "LexNode.MSSQL" -def execute_query(self, **kwargs): - global conn - cursor = conn.cursor() - - # Set the table name to the value of the "Table" field and remove it from kwargs - self.table_name = kwargs.pop('Table', self.table_name) - if kwargs.get('id', None) == 0: # Check if id is 0 - # Remove 'id' from kwargs - kwargs.pop('id', None) + def execute_query(self, **kwargs): + global conn + cursor = conn.cursor() - # Prepare the SQL statement for inserting a new record - kwargs['DateAdded'] = datetime.datetime.now() # Add current datetime - columns = ', '.join(kwargs.keys()) - placeholders = ', '.join('?' for _ in kwargs) - sql = f"INSERT INTO {self.table_name} ({columns}) VALUES ({placeholders})" - # print (sql) - values = [] - for value in kwargs.values(): - if isinstance(value, torch.Tensor): # Check if the value is a PyTorch tensor - # Convert the tensor to a numpy array - i = 255. * value[0].cpu().numpy() - img = Image.fromarray(np.clip(i, 0, 255).astype(np.uint8)) - byte_array = io.BytesIO() - img.save(byte_array, format='JPEG') - value = pyodbc.Binary(byte_array.getvalue()) - elif isinstance(value, datetime.datetime): # Check if the value is a datetime object - value = value.strftime('%Y-%m-%d %H:%M:%S') # Format the datetime object to string - values.append(value) + # Set the table name to the value of the "Table" field and remove it from kwargs + self.table_name = kwargs.pop('Table', self.table_name) + if kwargs.get('id', None) == 0: # Check if id is 0 + # Remove 'id' from kwargs + kwargs.pop('id', None) + + # Prepare the SQL statement for inserting a new record + kwargs['DateAdded'] = datetime.datetime.now() # Add current datetime + columns = ', '.join(kwargs.keys()) + placeholders = ', '.join('?' for _ in kwargs) + sql = f"INSERT INTO {self.table_name} ({columns}) VALUES ({placeholders})" + # print (sql) + values = [] + for value in kwargs.values(): + if isinstance(value, torch.Tensor): # Check if the value is a PyTorch tensor + # Convert the tensor to a numpy array + i = 255. * value[0].cpu().numpy() + img = Image.fromarray(np.clip(i, 0, 255).astype(np.uint8)) + byte_array = io.BytesIO() + img.save(byte_array, format='JPEG') + value = pyodbc.Binary(byte_array.getvalue()) + elif isinstance(value, datetime.datetime): # Check if the value is a datetime object + value = value.strftime('%Y-%m-%d %H:%M:%S') # Format the datetime object to string + values.append(value) - # print (tuple(values)) - cursor.execute(sql, tuple(values)) + # print (tuple(values)) + cursor.execute(sql, tuple(values)) - conn.commit() # Don't forget to commit the changes - cursor.execute("SELECT @@IDENTITY AS 'Identity'") - id_of_new_row = cursor.fetchone()[0] - return ["Insert operation completed.", id_of_new_row] - else: - for field, value in kwargs.items(): - if field in table_info[self.table_name]: # Ensure the field exists in the table - if isinstance(value, torch.Tensor): # Check if the value is a numpy array - # Ensure the numpy array can be represented as an image - i = 255. * value[0].cpu().numpy() - img = Image.fromarray(np.clip(i, 0, 255).astype(np.uint8)) - # Convert the numpy array to a byte array - byte_arr = io.BytesIO() - img.save(byte_arr, format='JPEG') - value = pyodbc.Binary(byte_arr.getvalue()) - cursor.execute(f"UPDATE {self.table_name} SET {field} = ? WHERE {field} = ?", (value, value)) - conn.commit() # Don't forget to commit the changes - return ["Update operation completed.", kwargs.get('id')] + conn.commit() # Don't forget to commit the changes + cursor.execute("SELECT @@IDENTITY AS 'Identity'") + id_of_new_row = cursor.fetchone()[0] + return ["Insert operation completed.", id_of_new_row] + else: + for field, value in kwargs.items(): + if field in table_info[self.table_name]: # Ensure the field exists in the table + if isinstance(value, torch.Tensor): # Check if the value is a numpy array + # Ensure the numpy array can be represented as an image + i = 255. * value[0].cpu().numpy() + img = Image.fromarray(np.clip(i, 0, 255).astype(np.uint8)) + # Convert the numpy array to a byte array + byte_arr = io.BytesIO() + img.save(byte_arr, format='JPEG') + value = pyodbc.Binary(byte_arr.getvalue()) + cursor.execute(f"UPDATE {self.table_name} SET {field} = ? WHERE {field} = ?", (value, value)) + conn.commit() # Don't forget to commit the changes + return ["Update operation completed.", kwargs.get('id')] class MSSqlSelectNode: